2

このmysqli実装を使用するために、mysql接続などを更新するだけです。以下のコードを実行しようとしています...

データベースへの接続は問題なく機能しており、? を置き換えると、実際の値では機能します。誰かが以下のエラーで私を助けることができますか?

ありがとう。

コード:

$sql = "INSERT INTO customers (cap_login, cap_pword, title, firstname, lastname, email)
VALUES (?,?,?,?,?,?)";
echo $sql;

$stmt = $db->prepare($sql);
$stmt->bind_param($username, $pass_hash, $title, $firstname, $lastname, $email);
$stmt->execute();
$stmt->close();

エラー:

Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in....

SQLステートメントをエコーアウトして、これを得ました:

INSERT INTO customers (cap_login, cap_pword, title, firstname, lastname, email) VALUES (?,?,?,?,?,?)
4

2 に答える 2

2

mysqli_stmt の構文:

mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )

変数の型を指定し忘れました

試す

$stmt->bind_param("ssssss",$username, $pass_hash, $title, $firstname, $lastname, $email);
于 2013-05-22T17:05:14.380 に答える
1

関数を使用する前に、正しい構文のマニュアル ページを読む必要があります。

bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
                    ^^^^^^

したがって、最初のパラメーターは次のような文字列でなければなりません'sssssss'

于 2013-05-22T17:04:38.703 に答える