2013-06-20 54 views
0

1064做 - 你有一個錯誤的SQL語法

我剛剛做了新安裝的XAMPP和配置的用戶名和密碼phpMyAdmin和mySQL。到目前爲止這麼好,沒有錯誤,一切正常。但是,當我去創建一個新的數據庫,創建一個新表,或者甚至刪除一個表時,總是會出現#1064錯誤消息。恆#1064的錯誤,我在MySQL的通過phpmyadmin

錯誤刪除數據庫時:

SELECT MAX(版本)FROM.WHERE db_name = 'new_database_test' AND table_name = '' AND FIND_IN_SET( 'DROP DATABASE',跟蹤)> 0

MySQL說:

#1064 - 你的SQL語法有錯誤;檢查對應於你的MySQL服務器版本正確的語法手冊使用 附近「WHERE db_name =‘new_database_test’AND table_name =‘’ 和FIND_IN_SET(」 d」在行1

錯誤創建一個時數據庫:

SQL查詢:編輯

SELECT MAX(版本)FROM.WHERE db_name = 'new_test_db' AND table_name = '' AND FIND_IN_SET( '創建數據庫',跟蹤)> 0

MySQL表示:

#1064 - 你在你的SQL語法錯誤;檢查手冊中 對應於你的MySQL服務器版本正確的語法使用 附近 'WHERE db_name = 'new_test_db' AND table_name = '' AND FIND_IN_SET(' 創建「,在1號線

錯誤添加表時:

SQL查詢:編輯

SELECT MAX(版本)FROM.WHERE db_name = 'new_test_db' AND table_name = 'awesome_table' AND FIND_IN_SET( 'CREATE TABLE', 跟蹤)> 0

MySQL表示:

#1064 - 你在你的SQL語法錯誤;檢查手冊中 對應於你的MySQL服務器版本正確的語法使用 附近「WHERE db_name =‘new_test_db’AND table_name = ‘awesome_table’AND FIND_IN」在行1

發現錯誤,它的顯示數據庫正在創建並被刪除。但是當我嘗試創建表時,它只是創建一個空表而不是包含我想要的任何列。

任何人有任何想法如何解決這個問題?我對mySQL和phpMyAdmin都是全新的,所以不知道從哪裏開始。

謝謝。

+0

'FROM。 WHERE'似乎是你的語法問題,應該是'FROM WHERE'哪裏是有效的語法。不是說我理解你的SQL查詢是關於何時操作數據庫... –

+0

我沒有運行這些查詢。我只是簡單地使用phpMyAdmin gui來嘗試創建一個表,並且一遍又一遍地彈出那些相同的錯誤。 [鏈接](http://i.imgur.com/ElSy76N.png) – Dairylee

回答

7

我看到的幾個我的學生機,今年的這個問題,試圖教他們使用XAMPP與phpMyAdmin作爲一個引導用戶界面的一些基本的SQL。

它從PMA被追加廢話SQL到SQL語句的結束試圖打開某些表時,錯誤消息似乎,他們在側邊欄名稱點擊了時也是如此。

刪除數據庫並重新創建它並沒有幫助,遺憾的是我的Google搜索中沒有明顯的答案。

確定問題PMA有關,並可能與特定用戶的配置後,我做了一個小的phpmyadmin數據庫四處。

我發現,被附加在查詢中排在phpmyadmin廢話SQL。 pma_table_uiprefs與我的學生的用戶名相關的問題,以及造成她的麻煩的特定數據庫和表名。大獎!我刪除了這一行。

刪除該行後,雖然我試圖關閉並重新啓動Apache,MySQL和連我的Web瀏覽器,問題依然存在。直到她的機器重新啓動後,問題才消失。 (這是一個Windows機器,FWIW,YMMV。)

希望這會有所幫助。

西蒙·魯伊斯

坎特伯雷

技術

0

你已經錯過了所有的表的名稱查詢

 SELECT MAX(version) FROM your_table 
            ^^-----your_table_here 

,你不要有包括數據庫或表在where子句。你需要學習選擇查詢的基礎知識。

+0

我沒有運行這些查詢。我只是使用phpMyAdmin界面。 例如。 [link](http://i.imgur.com/ElSy76N.png) – Dairylee

+0

如果您在此表中有名爲版本的列,您應該輸入'new_test_db',然後選擇max(版本) –

+0

數據庫中沒有表格。它不會讓我添加任何列到我創建的表 - 因此沒有列稱爲版本。 – Dairylee

1

給每個人提供與問題無關的答案 - PHPMyAdmin本身存在錯誤 - 不知何故,它存儲了一些不良SQL,並將其附加到每個查詢中,導致OP描​​述的錯誤,我以及現在體驗!有一個特別的表,當我嘗試瀏覽它或從中選擇時,我得到1064錯誤與筆記關於我不是做的查詢。在這裏你看到ANDverifyOptionID>0的部分是不是我在寫查詢的一部分 - 我只是單擊表,並試圖瀏覽它:

1064 - 你在你的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法使用手動附近「ANDverifyOptionID> 0 LIMIT 0,30」在行1

我懷疑事情是在phpMyAdmin緩存,但不知道在哪裏找到並修復它。

我已清除Cookies /重新啓動並且沒有愛。另一個用戶能夠毫無問題地查看錶格 - 所以這必須是與特定用戶帳號相關的內容。

PHPMyAdmin會緩存每個用戶可能導致此問題的內容嗎?

2

轉到表phpmyadmin-> pma_table_uiperfs刪除包含您的表名的行。刪除cookies,重啓mysql引擎。

0

什麼固定對我來說是:

1. go to table operations (where u clone or rename a table) 
2. click on repair table (right side in table maintenance section) 

編輯:

實際上是什麼問題對我來說是小寫的表名,我用了一個大寫的選擇查詢..