ホームページ  >  記事  >  バックエンド開発  >  PHP および MySQL コードで「列数が行 1 の値数と一致しません」というエラーが発生するのはなぜですか?

PHP および MySQL コードで「列数が行 1 の値数と一致しません」というエラーが発生するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-27 11:23:01755ブラウズ

Why am I getting the

PHP および MySQL の「列数が行 1 の値数と一致しません」エラーを修正する

データをPHP を使用している MySQL データベースでは、次のエラーが発生する場合があります:

Column count doesn't match value count at row 1

このエラーは、INSERT クエリで指定された値の数がターゲット テーブルで定義されている列の数と一致しない場合に発生します。

原因を理解する

コード例では、INSERT クエリで 9 つの列を指定しています。

INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username)

ただし、指定しているのは 8 つの値だけです:

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));

その結果、MySQL は指定された値の数を指定されたカラムと一致させることができず、エラーが発生します。

解決策: 値の数がカラムと一致することを確認してください。 Count

この問題を解決するには、クエリ内の値の数がターゲット テーブル内の列の数と一致することを確認する必要があります。この場合、メソッド値の指定が不足しています。

欠落している値を含めるようにコードを変更します:

$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Length, dateAdded, Username) VALUES ('', '%s', '%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($method),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));

正しい数の値を指定すると、正常に実行できるようになります。カラム数の不一致エラーが発生することなく、MySQL データベースにデータを挿入します。

以上がPHP および MySQL コードで「列数が行 1 の値数と一致しません」というエラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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