ホームページ >データベース >mysql チュートリアル >PHP MySQL INSERT ステートメントで「列数が行 1 の値数と一致しません」エラーがスローされるのはなぜですか?
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 サイトの他の関連記事を参照してください。