ホームページ >データベース >mysql チュートリアル >MySQL の複数の INSERT クエリでの「無効なパラメーター番号」エラーを修正する方法?

MySQL の複数の INSERT クエリでの「無効なパラメーター番号」エラーを修正する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 02:15:15186ブラウズ

How to Fix

複数の挿入クエリにおける「無効なパラメータ番号」エラーの解決

提供されたコードでは、複数の挿入クエリを実行すると、パラメータの不一致によりエラーが発生します。挿入される値とクエリ内の予想されるパラメーターの数。

問題

コードは、一致の数 ($matches) に基づいてプレースホルダーの配列 ($values) を生成します。ただし、$values 配列に既にコンテンツがある場合は、カウントの不一致が発生し、エラーが発生する可能性があります。

解決策

この問題に対処するには:

  • $values 配列を使用する前に、必ず空の状態に初期化してください。ループ。

    $values = [];
  • データベース内のハッシュ列に一意のインデックスがあることを確認します。これは、クエリが正しく機能するために不可欠です。

改訂されたコード

$matches = array('1');
$count = count($matches);
$values = [];

for($i = 0; $i < $count; ++$i) {
    $values[] = '(?)';
}

$sql = "INSERT INTO hashes (hash) VALUES " . implode(', ', $values) . " ON DUPLICATE KEY UPDATE hash=values(hash)";
$stmt = $dbh->prepare($sql);
$data = $stmt->execute($matches);

これらの変更を実装すると、コードはパラメーター不一致エラーが発生することなく正常に実行されるはずです。

以上がMySQL の複数の INSERT クエリでの「無効なパラメーター番号」エラーを修正する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。