ホームページ > バックエンド開発 > PHPチュートリアル > 変数とパラメータの不一致により、mysqli プリペアド ステートメントでエラーが発生するのはなぜですか?

変数とパラメータの不一致により、mysqli プリペアド ステートメントでエラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2024-10-22 10:57:03
オリジナル
269 人が閲覧しました

Why Did Mismatched Variables and Parameters Cause an Error in mysqli Prepared Statements?

mysqli: "変数の数がパラメータの数と一致しません"

mysqli のプリペアド ステートメントの使用中に直面した問題に対応して、根本的な原因は、準備されたステートメントの不適切な構文にあります。応答で述べたように、次の修正により問題が解決されます。

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

ステートメントを準備するときは、入力データのプレースホルダーを疑問符で囲むことが重要です。ただし、元のステートメント内では、make 変数のプレースホルダーが引用符で囲まれており、プレースホルダーとして認識できませんでした。その結果、疑問符の数が、bind_param() の変数の数と一致しませんでした。

そのため、修正された準備済みステートメントでは、? の周りの引用符を削除することで、この不一致を解消しています。プレースホルダー。bind_param() を使用して入力変数を適切にバインドできるようになります。これにより、ステートメントが正常に実行され、望ましい結果が得られることが保証されます。

以上が変数とパラメータの不一致により、mysqli プリペアド ステートメントでエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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