Update PHP prepare bindparam


Update PHP prepare bindparam

这是我的PHP代码:

<?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $UpdateChecklist = 'UPDATE checklists SET ADMIN_ID=?, COMPUTER_ID=? WHERE id=?';
        $stmtChecklist = $connection->prepare($UpdateChecklist);
        $stmtChecklist->bind_param('ii', $_POST['ADMIN_ID'], $_POST['COMPUTER_ID']);
        $isUpdate = $stmtChecklist->execute();
        $lastUpdateId = mysqli_insert_id($connection);
        $stmtChecklist->close();
        $UpdateInstalledProgram = 'UPDATE checklist_programs SET CHECKLIST_ID=?, PROGRAM_ID=? WHERE id = ?';
        $stmtProgramId = $connection->prepare($UpdateInstalledProgram);
        $stmtProgramId->bind_param('ii', $lastUpdateId, $programId);
        foreach ($_POST['PROGRAM_ID'] as $program) {
            $programId = $program;
            $stmtProgramId->execute();
        }
        $connection->close();
        if ($isUpdate) {
            header('Location: OverViewCheckList.php');
            exit(0);
        }
    }
?>

而且,我遇到了一些错误,我不知道如何修复:

警告:mysqli_stmt::bind_param():变量数与第34行C:''examplep''htdocs''checklist ''updateChecklist.php中准备好的语句中的参数数不匹配

警告:mysqli_stmt::bind_param():变量数与第44行C:''examplep''htdocs''checklist ''updateChecklist.php中准备好的语句中的参数数不匹配

警告:mysqli::query():无法在第57行的C:''examplep''htdocs''checklist ''updateChecklist.php中获取mysqli

致命错误:在C:''examplep''htdocs''checklist ''updateChecklist.php的59行中,对null的成员函数fetch_assoc()进行调用

在您的两个查询中,您都使用了3?'s,但仅绑定2个变量。

查询1:

$UpdateChecklist = 'UPDATE checklists SET ADMIN_ID=?, COMPUTER_ID=? WHERE id=?';
$stmtChecklist = $connection->prepare($UpdateChecklist);
$stmtChecklist->bind_param('ii', $_POST['ADMIN_ID'], $_POST['COMPUTER_ID']); /* Here*/

查询2:

$UpdateInstalledProgram = 'UPDATE checklist_programs
SET CHECKLIST_ID=?, PROGRAM_ID=? WHERE id = ?';
$stmtProgramId = $connection->prepare($UpdateInstalledProgram);
$stmtProgramId->bind_param('ii', $lastUpdateId, $programId); /* Here */

您需要添加第三个变量,例如:

$stmtChecklist->bind_param('iii', $_POST['ADMIN_ID'], $_POST['COMPUTER_ID'], $id3);
$stmtProgramId->bind_param('iii', $lastUpdateId, $programId, $id3);