2010-03-15 157 views
0

我試圖使用表單和PHP函數將值輸入到數據庫表中。 PHP似乎很好,因爲它創建的SQL語句看起來沒問題,但數據庫總是拋出一個錯誤。這是SQL語句,我的代碼生成(任意值):SQL語句問題

INSERT INTO Iteminfo ('itemName', 'itemSeller', 'itemCategory', 'itemDescription', 'itemPrice', 'itemPostage', 'itemBegin', 'itemEnd', 'buynow', 'itemPicture') 
values ('gorillaz album', 'ben', 'music', 'new one ', '5.00', '1.00', '2010-03-15 14:59:51', '2010-03-16 14:59:51', '0', 'http://www.thefader.com/wp-content/uploads/2010/01/gorillaz-plastic-beach.jpg') 

這拋出了一個錯誤都當我使用PHP函數來評估查詢,也當我使用phpMyAdmin手動輸入查詢。但是,我看不出有什麼問題。任何人都可以對此有所瞭解嗎?除了itemPrice和itemPostage(它們以DECIMAL(4,2)存儲)以及itemBegin和itemEnd之外,所有這些字段都是VARCHAR值,它們存儲爲DATETIME。

+3

爲什麼在5.00和1.00附近有引號? – middus 2010-03-15 15:11:37

回答

8

嘗試

INSERT INTO Iteminfo (itemName, itemSeller, itemCategory, itemDescription, itemPrice, itemPostage, itemBegin, itemEnd, buynow, itemPicture) 
values ('gorillaz album', 'ben', 'music', 'new one ', '5.00', '1.00', '2010-03-15 14:59:51', '2010-03-16 14:59:51', '0', 'http://www.thefader.com/wp-content/uploads/2010/01/gorillaz-plastic-beach.jpg') 

列名不應該被引用。

+0

我通常在'-quotes(在MySQL中)引用它們。我曾經在我自己的本地MySQL服務器上開發了一個站點,這個站點是一個與現場版本不同的版本,我將這個版本轉移到了我的站點上。我花了相當長的時間才發現,我的列名之一是新版本中的MySQL關鍵字...... :) – 2010-03-15 15:12:31

+0

您也可以嘗試用phpMyAdmin插入值,然後獲取在那裏生成的SQL – 2010-03-15 15:13:58

+0

@Lex同意!使用反引號來轉義實體名稱絕對是最佳做法。我主要使用SQL Server 2005,其中一個表有一個名爲Group的字段。它並沒有多次運行該字段的查詢,以避免我逃過一切! – Dathan 2010-03-15 15:49:34

4

表(ITEMNAME,itemSeller等)

1

列名不應該是字符串

嘗試在列定義

刪除「」以後不要引用指定列表中的列名
1

根據middus上面的評論,5.00和1.00不應該被引用,因爲它們是小數,而不是字符串。