首頁 >資料庫 >mysql教程 >為什麼我的 PHP MySQL INSERT 查詢中會出現「列計數與值計數不符」錯誤?

為什麼我的 PHP MySQL INSERT 查詢中會出現「列計數與值計數不符」錯誤?

Barbara Streisand
Barbara Streisand原創
2024-11-29 10:51:09496瀏覽

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
  • 名稱
  • 描述
  • 簡短描述
  • 中成分
  • 簡短描述
  • 中成分
  • 方法
  • 長度
  • 新增日期

使用者名稱

但是,插入的值只佔8 個值(因為影像列不包含在清單中)。

解決方案

$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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn