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

PHP MySQL INSERT クエリで「列数が値数と一致しません」エラーが発生するのはなぜですか?

Barbara Streisand
リリース: 2024-11-29 10:51:09
オリジナル
501 人が閲覧しました

Why Am I Getting a

PHP と MySQL の列数と値数の不一致エラー

PHP を使用して MySQL データベースにデータを挿入しようとすると、次のエラーが発生する場合があります:

Column count doesn't match value count at row 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($method),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));
ログイン後にコピー

エラーの解決

エラーを解決するには、コードとデータベース定義を検査して欠損値を特定する必要があります。この場合、INSERT で 9 列を宣言したようです。ステートメント:

  • id
  • Name
  • Description
  • shortDescription
  • In gredients
  • Method
  • Length
  • dateAdded
  • Username

ただし、挿入される値は 8 つの値のみを考慮します (画像列がリストに含まれていないため)。

解決策

エラーを修正するには、次のいずれかを追加します。 Method 列の欠落している値を修正するか、挿入する値の数と一致するようにデータベース定義を修正します。最初のオプションを選択した場合は、クエリを次のように更新します:

$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));
ログイン後にコピー

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

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