Я пытаюсь привязать параметры к sql (mysqli) в php, но есть код ошибки, как указано выше. Это код, который я написал:
$stmt = $conn->prepare("INSERT INTO assignments (Classes_has_Subjects_classesHasSubjectsId, assignmentName, gradeForAssignment,protectiveGrade) VALUES (?, ?, ?, ?)"); if ($stmt = false) { echo "false"; } else{ $stmt->bind_param("sss", $classesHasSubjectsId, $assignmentName, $gradeForAssignment, $protectiveGrade); $stmt->execute(); }
и вот сообщение об ошибке: 11
Неустранимая ошибка: вызов функции-члена bind_param () в boolean
Что не так?
<?php $stmt = $conn->prepare("INSERT INTO assignments (Classes_has_Subjects_classesHasSubjectsId, assignmentName, gradeForAssignment,protectiveGrade) VALUES (?, ?, ?, ?)"); if (!$stmt) { echo "false"; } else { $stmt->bind_param("ssss", $classesHasSubjectsId, $assignmentName, $gradeForAssignment, $protectiveGrade); $stmt->execute(); }
if ($stmt = false) означает, что вы присваиваете false $stmt . Замените его if (!$stmt) .
Вы связываете 4 параметра, но предоставляете только 3 типа значений. Я добавил s в функцию bind_param , считая, что все ваши значения являются строками. Если некоторые из значений являются целыми числами, замените соответствующие s на i . Если есть двойники, замените на d .
Вы уверены, что первое имя поля в таблице assignments – Classes_has_Subjects_classesHasSubjectsId ?