ホームページ  >  記事  >  バックエンド開発  >  MySQL INSERT ステートメントで「列数の不一致」エラーがスローされるのはなぜですか?

MySQL INSERT ステートメントで「列数の不一致」エラーがスローされるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-31 23:25:28749ブラウズ

Why Does My MySQL INSERT Statement Throw a

MySQL INSERT の列数の不一致

「列数が行 1 の値数と一致しません」というエラーは、データベース テーブル内の列の数と、INSERT ステートメントで指定された値の数。

指定されたコードでは、INSERT ステートメントを使用して、「dbname」という名前のテーブルに値を挿入しようとします。このクエリには 9 つの列 (「id」、「Name」、「Description」、「shortDescription」、「Ingredients」、「Method」、「Length」、「dateAdded」、「Username」) がリストされていますが、提供される値は 8 つだけです。 VALUES 句内。具体的には、「メソッド」値が欠落しています。

この列数と値数の不一致により、エラーが発生します。これを解決するには、クエリに正しい数の列と値が含まれていることを確認してください。この場合、INSERT ステートメントを実行する前に、「メソッド」列の値を追加します。

欠落している値が追加された変更コードは次のとおりです。

<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), // Method value added
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username));</code>

正しい数値を指定することにより、 INSERT ステートメントの列の値を正しく設定すると、エラーを回避でき、データをデータベースに正常に挿入できます。

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

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