Я пытаюсь привязать параметры к 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
?