-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'附近使用正確的語法。
任何人都可以幫我弄清楚它爲什麼會失敗。
這是遞增ItemOrder列一個可怕的技術。爲什麼不在這裏使用[AUTO_INCREMENT](http://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html)? –
請停止使用純文本編輯器編寫代碼。像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
Aww :(爲什麼要投票。我只在本週開始使用php mysql。我承認,我做了一個 –