嘗試使用 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列語句:
使用者名稱
但是,插入的值只佔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中文網其他相關文章!