ホームページ >データベース >mysql チュートリアル >PHP MySQL INSERT ステートメントで「列数が行 1 の値数と一致しません」エラーがスローされるのはなぜですか?

PHP MySQL INSERT ステートメントで「列数が行 1 の値数と一致しません」エラーがスローされるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-28 01:38:10408ブラウズ

Why Does My PHP MySQL INSERT Statement Throw a

PHP および MySQL での「列数が行 1 の値数と一致しません」エラーを解決する方法

データを挿入しようとしたときPHP を使用して MySQL データベースにアクセスすると、「列数が行 1 の値数と一致しません。」というエラーが発生する場合があります。このエラーは、挿入しようとしている値の数がテーブルに定義されている列の数と一致しないことを示しています。

この問題を解決するには、エラーの原因となっているコードを注意深く確認してください。提供されたコード スニペットでは:

$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%s', '%s', '%s', '%s', '%s', '%s')",
    mysql_real_escape_string($name),
    mysql_real_escape_string($description),
    mysql_real_escape_string($shortDescription),
    mysql_real_escape_string($ingredients),
    //mysql_real_escape_string($image),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));

INSERT ステートメントで 9 つのフィールドを定義しましたが、そのうちの 8 つのフィールドにのみ値を指定しました。欠落している値は「メソッド」フィールドのものと思われます。この問題を解決するには、「メソッド」フィールドの値を追加する必要があります。

SQL インジェクションを防ぐために、すべての値が適切にエスケープされていることを確認してください。 mysql_real_escape_string 関数を使用して値をエスケープできます。

テーブルに定義されているすべての列に値を指定すると、「列数が行 1 の値数と一致しません」エラーを解決でき、 MySQL データベースにデータが正常に挿入されました。

以上がPHP MySQL INSERT ステートメントで「列数が行 1 の値数と一致しません」エラーがスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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