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

PHP MySQL INSERT ステートメントで「列数が行 1 の値数と一致しません」というエラーが発生するのはなぜですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 18:57:30984ブラウズ

Why Am I Getting

PHP、MySQL エラー: 列数が行 1 の値数と一致しません解決されました

「列数が一致しません」というエラーが発生した場合t match value count at row 1」というメッセージは、データベース テーブルの列数と 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')",
    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)
);

// ...</code>

INSERT ステートメントで 9 つの列を指定しましたが、指定された値は 8 つだけです。具体的には、「メソッド」列の値が欠落しています。

この問題を解決するには、メソッドの値を 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),
    mysql_real_escape_string($length),
    mysql_real_escape_string($dateAdded),
    mysql_real_escape_string($username)
);

// ...</code>

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

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