2

私はエラーを見ていないので、誰かがそれを理解できることを望んでいました:

 public static function createMessage($title, $message, $startDate, $endDate, $author, $status){
      //$dbConn is now a mysqli instance with a connection to the database foobar
      $dbConn = Database::getConnection("foobar");

      $stmt = $dbConn->prepare("INSERT into messages(title, msg, date_start, date_end, app_usersID_FK, date_created, activeflag, msg_status) VALUES (?,?,?,?,?,?,?,?)");

      if(!$stmt){
           throw new Exception("Unable to prepare the statement");
      }

      $dt = date("Y-m-d");
      $stmt->bind_param("ssssisii", $title, $message, $startDate, $endDate, $author, $dt, 1, $status);
      $stmt->execute();

      return true;
 }

関数呼び出し

MessageCenter::createMessage("こんにちは", "こんにちはと言うために電話しています", "2009-09-12", "2009-09-12", "1", "1");

エラーメッセージは次のとおりです。

致命的なエラー: パラメータ 8 を参照渡しできません

4

2 に答える 2

6

あなたのbind_param方法は実際にはmysqli_stmt::bind_param. yes の場合: すべてのパラメーター (最初のパラメーターを除く) は参照によって渡される変数である必要があるため、「バインド」できます。

マニュアルにあるように(強調は私のものです)

mysqli_stmt::bind_param-- —変数をパラメータとして準備済みステートメントにmysqli_stmt_bind_paramバインド します


これは、値を渡すことができないことを意味します。変数を使用する必要があります。

Si、あなたの場合、次のようなことが必要です:

$my_var = 1;
$stmt->bind_param("ssssisii", $title, $message, $startDate, 
   $endDate, $author, $dt, $my_var, $status);
于 2009-09-02T19:30:12.447 に答える
0

それを見つけた!activeFlag を変数にしたかったのです。以下の作品:

$dt = date("Y-m-d");
$flag = 1;
$stmt->bind_param("ssssisii", $title, $message, $startDate, $endDate, $author, $dt, $flag, $status);
$stmt->execute();
于 2009-09-02T19:30:16.567 に答える