我在下面有一段代码,使用mysqli和php将数据插入数据库。问题是我得到一个致命的错误说明:致命错误:无法通过引用传递参数2 ......第116行
为什么会出现此错误,如何修复错误?
以下是代码:
if ($numrows == 0){
$teacherpassword = md5(md5("j3Jf92".$teacherpassword."D203djS"));
$code = md5(rand());
$insertsql = "
INSERT INTO Teacher
(TeacherId, TeacherForename, TeacherSurname, TeacherEmail, TeacherAlias, TeacherUsername, TeacherPassword, Active, Code)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?)
";
if (!$insert = $mysqli->prepare($insertsql)) {
// Handle errors with prepare operation here
}
$insert->bind_param("sssssssss", '', $getfirstname, $getsurname,
$getemail, $getid, $getuser,
$teacherpassword, '0', $code);
$insert->execute();
if ($insert->errno) {
// Handle query error here
}
$insert->close();
答案 0 :(得分:2)
mysqli_stmt::bind_param()
接受一个字符串,详细说明以下参数的类型,然后是一组对包含数据的变量的引用。
只有变量可以通过引用传递,因此不允许您将字符串(''
或'0'
)传递给函数。您必须将该字符串放在变量中,然后传递该变量。
如果您将常量值传递给INSERT
,为什么不将它们设为这些字段的DEFAULT
值,然后将其从查询中删除?