これは初心者の間違いである必要がありますが、私はそれを見ていません。私は$年度の値をエコーし、$作るとき、私は値を見ていPHP mysqi bind_param変数の数がプリペアドステートメントのパラメータの数と一致しません
$mysqli = mysqli_connect($dbCredentials['hostname'],
$dbCredentials['username'], $dbCredentials['password'],
$dbCredentials['database']);
if ($mysqli->connect_error) {
throw new exception('Connect Error (' . $mysqli->connect_errno . ') '
. $mysqli->connect_error);
}
$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types
WHERE year = ? AND make = '?' ORDER by model");
$stmt->bind_param('is', $year, $make);
$stmt->execute();
が、私はこのスクリプトを実行すると、私はNULL値、および次の警告を得る:ここに私のコードからの抜粋です私のログファイルに表示されます。この場合
PHP Warning: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
、今年はint型でデータベース(10)である、と私はint型にキャストされていたコピーを渡して試してみました、とmake(varchar型であります20)をutf8_unicode_ciエンコーディングで置き換えます。何か不足していますか?あなたのプリペアドステートメントが間違っている
**あなたは** bind_paramメソッドで何をしようとしましたか? –
これは$ types文字列です。 "is"は、最初のパラメータが整数で、2番目が文字列であることを示す必要があります。 – TMorgan