ホームページ > バックエンド開発 > PHPチュートリアル > MySQL でプリペアド ステートメントを使用すると「変数の数がパラメータの数と一致しません」というエラーが表示されるのはなぜですか?

MySQL でプリペアド ステートメントを使用すると「変数の数がパラメータの数と一致しません」というエラーが表示されるのはなぜですか?

Mary-Kate Olsen
リリース: 2024-10-22 10:57:30
オリジナル
809 人が閲覧しました

Why Do I Receive

質問: MySQL で「bind_param: 変数の数がパラメータの数と一致しません」というメッセージが表示されるのはなぜですか?

MySQL を使用する PHP スクリプトでは、次のような問題が発生します。準備されたステートメントを実行すると、「変数の数が準備されたステートメントのパラメーターの数と一致しません」という警告が表示される問題。これは、準備されたステートメント内の疑問符の数が、bind_param() メソッドでバインドされた変数の数と一致しない場合に発生する可能性があります。

解決策:

この問題を解決するには、次のことを確認してください。準備されたステートメント内の疑問符の数は、bind_param() に渡される変数の数と一致します。修正されたコード スニペットの例を次に示します。

<code class="php">$stmt = $mysqli->prepare("SELECT DISTINCT model FROM vehicle_types WHERE year = ? AND make = ? ORDER by model");
$stmt->bind_param('is', $year, $make);
$stmt->execute();</code>
ログイン後にコピー

この例では、準備されたステートメントに 2 つの疑問符が含まれており、bind_param() メソッドが 2 つの変数 $year と $make をバインドしています。 「is」の最初の文字は最初のパラメータの型 (整数) を指定し、2 番目の文字は 2 番目のパラメータの型 (文字列) を指定します。

ステートメントを準備するときは、すべての文字を置き換える必要があることに注意してください。引用符のない疑問符が付いた変数。引用符内の疑問符はプレースホルダーとして解釈されません。

以上がMySQL でプリペアド ステートメントを使用すると「変数の数がパラメータの数と一致しません」というエラーが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート