Это мой код, я новичок в программировании, и он предназначен для нашего головного проекта.

Я хочу ВЫБРАТЬ существующего пользователя из таблицы «служащий» и ВСТАВИТЬ только первичный ключ пользователя в таблицу «заголовок отдела», чтобы назначить его / ее главой отдела.

Моя проблема в том, что я не знаю, какой для него идеальный синтаксис, и я попытался запустить свой код, ошибка не отображается только на белой странице.

<?php
session_start();
error_reporting(0);
include('include/db.php');
if(strlen($_SESSION['alogin'])==0){
    header('location:index.php');
}
else{
if(isset($_GET['empid'])){
    $id=$_GET['empid'];
    $query1=$dbh->prepare('INSERT INTO departmenthead SELECT * FROM employee WHERE emp_id=:empid');
    $query2=$dbh->prepare('UPDATE FROM employee WHERE emp_id=:empid');
    $dbh->beginTransaction();
    if ($query1->execute([':empid' => $id]) && $query2->execute([':empid' => $id])) {
        $dbh->commit();
            header("Location:adddepthead.php");
        } else {
            $dbh->rollBack();
        }
}?>
0
Nowell 4 Май 2021 в 17:44

1 ответ

Лучший ответ

В вашем запросе не указаны столбцы

"INSERT INTO departmenthead (id, name, surname) 
SELECT id, name, surname
    FROM employee WHERE emp_id=:empid "

ПРИМЕЧАНИЕ. Столбцы возвращаются из выбора и совпадают со вставкой столбца.

Ваш запрос также верен, но столбцы не совпадают, лучше указать столбцы

Удалите query2, он ничего не делает

0
Artier 4 Май 2021 в 15:07