Я получаю это сообщение об ошибке в задании для класса. Ive создал UPDATE, который использует формы для пользователя, чтобы редактировать содержимое, распечатанное из базы данных на предыдущей странице.
Я получаю Invalid номер параметра: количество связанных переменных не совпадает с числом токенов в строке 14
<? require '../connection.php'; if (isset($_POST['save'])) { $sql = "UPDATE videoinfo SET submitter = :submitter, videoTitle = :videoTitle, channelName = :channelName, videoLink = :videoLink WHERE videoId = :videoId"; $stmt = $dataconn -> prepare($sql); $stmt -> execute( array(":submitter" => $_POST['submitter'], ":videoTitle" => $_POST['videoTitle'], ":channelName" => $_POST['channelName'], ":videoLink" => $_POST['videoLink']) ); echo "Record Updated"; echo "<br />"; include 'adminmain.php'; } else { $sql = "SELECT * FROM videoinfo AS v WHERE videoId = :videoId"; $stmt = $dataconn -> prepare($sql); $stmt -> execute( array(":videoId" => $_POST['videoId']) ); $video = $stmt->fetch(); }?> <html> <? if (isset($_POST['update'])) { ?> <form method="post"> Submitter: <input type="text" name="submitter" value="<?= $video['submitter'] ?>" /> <br /> Video Title: <input type="text" name="videoTitle" value="<?= $video['videoTitle'] ?>" /> <br /> Channel Name: <input type="text" name="channelName" value="<?= $video['channelName'] ?>" /> <br /> Video Link: <input type="text" name="videoLink" value="<?= $video['videoLink'] ?>" /> <br /> <input type="hidden" name="videoId" value="<?= $video['videoId'] ?>" /> <input type="submit" value="Save" name="save" /> </form> <? }//endIf ?> </html>
У вас есть пять связанных параметров, но они только привязывают к ним четыре значения. Вам не хватает значения для :videoId
.
$sql = "UPDATE videoinfo SET submitter = :submitter, videoTitle = :videoTitle, channelName = :channelName, videoLink = :videoLink WHERE videoId = :videoId"; $stmt = $dataconn -> prepare($sql); $stmt -> execute( array(":submitter" => $_POST['submitter'], ":videoTitle" => $_POST['videoTitle'], ":channelName" => $_POST['channelName'], ":videoLink" => $_POST['videoLink'], ":videoId" => $_POST['videoId'] ) );