2012-08-26 53 views
-2

更新:我的錯誤 - 我犯了一個錯字。沒關係這個問題。爲什麼php爲我的SQL查詢顯示錯誤

我使用php來更新mysql數據庫。當我在執行前打印出來在我的網頁我用得到的查詢如下:

INSERT INTO perch2_content_items 
(itemOrder, regionID, pageID, itemRev, itemID, itemJSON, itemSearch) 
SELECT MAX(itemOrder)+1, 105, 81, 11, 118, 'json', 'search' 
FROM perch2_content_items WHERE regionID=105 

當我直接複製並粘貼到查詢phpMyAdmin的SQL接口,它工作正常。表得到更新。 但是,當我嘗試使用我的php代碼執行它時,它會引發錯誤。

$insertToPerch = "INSERT INTO perch2_content_items 
(itemOrder, regionID, pageID, itemRev, itemID, itemJSON, itemSearch) 
SELECT MAX(itemOrder)+1, $regionID, $pageID, 
$regionRev, $newItemID, 'json', 'search' 
FROM perch2_content_items WHERE regionID=$regionID"; 
mysql_query(insertToPerch) or die(mysql_error()); 

我得到的錯誤是:

您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的手冊,以便在第1行的'insertToPerch'附近使用正確的語法。

任何人都可以幫我弄清楚它爲什麼會失敗。

+1

這是遞增ItemOrder列一個可怕的技術。爲什麼不在這裏使用[AUTO_INCREMENT](http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)? –

+0

請停止使用純文本編輯器編寫代碼。像netBeans或PHPStorm這樣的體面的IDE將突出你的代碼語法,並提供有關錯誤代碼的提示/警告。在這種情況下,PHP本身會發出關於使用未定義常量的通知 - 如果啓用了display_errors,則會看到它。 (除此之外,不建議使用'mysql_'函數,學習準備好的語句並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/mysqli)。 [這裏是一個相當不錯的PDO相關教程](http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers)。) – DCoder

+0

Aww :(爲什麼要投票。我只在本週開始使用php mysql。我承認,我做了一個 –

回答

2

您需要mysql_query($insertToPerch)沒有$它只是字符串'insertToPerch'

+0

當然!當你看起來很有趣g代表你想念的年齡。太感謝了。 –

相關問題