PHP、MySQL エラー: 行 1 の列数が一致しません
このエラー、「列数が行 1 の値数と一致しません」 " は、データを挿入しようとしている列の数と、提供されている実際の値の数との間に不一致があることを示します。
提供されたコード スニペットでは、次のコードを使用してテーブルにデータを挿入しようとしています。 8 つの値 ($name、$description、$shortDescription、$ingredients、$method、$username、$length、$dateAdded) を使用する 9 つの列 (id、名前、説明、shortDescription、成分、メソッド、長さ、dateAdded、ユーザー名)。
エラーの原因:
INSERT クエリで定義された列の数と、それに渡される値の数が一致しないためにエラーが発生します。 。この場合、クエリでは 9 個の値が必要ですが、「image」列を除いて 8 個だけが提供されています。
解決策:
エラーを解決するには、次のことを確認してください。値の数が INSERT クエリの列の数と一致することを確認します。 「image」列の欠落している値を追加することも、挿入される列のリストからその値を削除することもできます。
コード変更:
オプション1: 欠損値を追加します
<code class="php">$query = sprintf("INSERT INTO dbname (id, Name, Description, shortDescription, Ingredients, Method, Image, Length, dateAdded, Username) VALUES ('', '%s', '%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), '', // Placeholder for empty 'image' value mysql_real_escape_string($length), mysql_real_escape_string($dateAdded), mysql_real_escape_string($username));</code>
オプション 2: 「画像」列を削除します
<code class="php">$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));</code>
以上がMySQL クエリで「行 1 の列数が一致しません」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。