Chamar para uma function de membro bind_param () em booleano

Eu tento ligar os parâmetros ao sql (mysqli) no php, mas existe um código de erro conforme descrito acima. Este é o código que escrevi:

$stmt = $conn->prepare("INSERT INTO assignments (Classes_has_Subjects_classsHasSubjectsId, assignmentName, gradeForAssignment,protectiveGrade) VALUES (?, ?, ?, ?)"); if ($stmt = false) { echo "false"; } else{ $stmt->bind_param("sss", $classsHasSubjectsId, $assignmentName, $gradeForAssignment, $protectiveGrade); $stmt->execute(); } 

e aqui está a mensagem de erro: 11

Erro fatal: Ligue para uma function de membro bind_param () em boolean in

O que está errado?

 prepare("INSERT INTO assignments (Classes_has_Subjects_classsHasSubjectsId, assignmentName, gradeForAssignment,protectiveGrade) VALUES (?, ?, ?, ?)"); if (!$stmt) { echo "false"; } else { $stmt->bind_param("ssss", $classsHasSubjectsId, $assignmentName, $gradeForAssignment, $protectiveGrade); $stmt->execute(); } 

if ($stmt = false) significa que você está atribuindo false para $stmt . Substitua-o por if (!$stmt) .

Você vincula 4 parâmetros, mas apenas fornece 3 tipos de valores. Eu adicionei um s na function bind_param , assumindo que todos os seus valores são string. Se alguns dos valores são números inteiros, substitua o s correspondente por um i . Se houver duplas, substitua por uma d .

Tem certeza de que o nome do primeiro campo na tabela de assignments é Classes_has_Subjects_classsHasSubjectsId ?