1

以下に、mysqli と php を使用してデータベースにデータを挿入するコード ブロックがあります。問題は、次のような致命的なエラーが発生することです: Fatal error: Cannot pass parameter 2 by reference in ... on line 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();
4

1 に答える 1

2

mysqli_stmt::bind_param()次の引数の型を詳述する 1 つの文字列と、データを含む変数への参照のセットを取ります。

参照によって渡されるのは変数のみであるため、文字列 (''または'0') を関数に渡すことはできません。その文字列を変数に入れてから、その変数を渡す必要があります。

に定数値を渡す場合、それらをそれらのフィールドINSERTの値にしてから、クエリから削除してみませんか?DEFAULT

于 2012-08-24T20:15:59.927 に答える