2012-05-09 102 views
1
$query="INSERT INTO `main_table` (`count`) VALUES ('$count') WHERE userid='$someid'"; 

基本上我喜歡在main_table中的變量count中插入一個新的count值,其中userid等於一個變量some​​id。該SQL語句的問題

SQL抱怨此聲明的語法。

+1

您是否想創建一個全新的行,或者您是否想更新一些以前存儲的數據?也許,對於未來的訪問者,你可以編輯你的問題來包含MySQL給你的確切錯誤。 –

+0

請張貼您的表格結構。 'SHOW CREATE TABLE main_table'。 –

回答

5

要更新現有的行,您應該使用UPDATE語句而不是INSERT語句。

UPDATE `main_table` 
SET `count` = '$count' 
WHERE userid='$someid' 

看到它聯機工作:sqlfiddle

INSERT僅用於完全插入新行插入表中。在INSERT語句中有一個WHERE子句是不合法的。

+0

雖然我在'字段列表'中獲得了未知列'1'。我再次檢查了所有列名都是正確的。 –

+0

@jasonwhite:我測試過這個確切的查詢,它絕對有效。看看我的鏈接到sqlfiddle顯示它在線工作。也許你的副本+粘貼鍵無法正常工作?我的猜測是,無論如何'$ count'或'$ someid'最終都被反引號括起來而不是引號。你可以發佈你發送給數據庫的* exact * SQL(在PHP變量被評估之後)嗎? –

0

應該是

$查詢= 「INSERT INTO MAIN_TABLE(計數)VALUES($計數)其中userid = $ someid'」;

單引號僅用於varchar類型字段上的varchar類型變量。

Rhian A.(NZT)