2016-08-26 65 views
1

我正在使用直接標籤SQL在phpMyAdmin來執行我的查詢,但仍得到相同的錯誤Command out of sync error這裏嵌套奎雷斯同步錯誤的是我的MySQL查詢我試圖執行:命令出來

SELECT `courses`.`id`    as `courseId`, 
     `courses`.`Name`    as `courseName`, 
     `course2teacher`.`TeacherId` as `teacherId`, 
     (SELECT user.name 
     FROM user, 
       (SELECT course2teacher.TeacherId as tid 
       FROM course2teacher, 
         user, 
         follows, 
         teachers 
       WHERE user.id = 10 
         AND user.id = follows.studentid 
         AND course2teacher.id = follows.course2teacherid) as 
       teach 
     WHERE teach.tid = user.id) as teacherName, 
     `assignments`.`Assignment#` AS `assignmentName`, 
     `assignments`.`DueDate`  AS `duedate`, 
     `assignments`.`DueTime`  AS `duetime`, 
     `assignments`.`expiryDate` AS `expiryDate` 
FROM `teachers`, 
     `courses`, 
     `assignments`, 
     `course2teacher`, 
     `user`, 
     `follows` 
WHERE `user`.`id` = '10' 
     AND `user`.`id` = `follows`.`studentid` 
     AND `follows`.`course2teacherid` = `assignments`.`course2teacherId` 
     AND `course2teacher`.`id` = `follows`.`course2teacherid` 

這是我得到的錯誤消息:#2014 - Commands out of sync; you can't run this command now

爲什麼會出現這種情況,有什麼方法可以解決這個問題嗎?

+0

phpMyAdmin的什麼版本? – eggyal

+0

phpmyadmin的版本是4.0.10.14 –

+1

我認爲,無論你如何切斷這個,它一定是phpMyAdmin中的一個錯誤 - 究竟是什麼情況觸發它,以及如何避免它們是不同的問題,但是... – eggyal

回答

0

ž

通常當一個結果集被打開,然後啓動另一個查詢之前未關閉時出現此錯誤。

我相信這會重新創建錯誤(爲了說明目的最小爲例):

$CMySQL->query($VSQL); 

$RResult = $CMySQL->store_result(); 

$ARow = $RResult->fetch_assoc(); 

$CMySQL->query($VSQL); // error occurs here as result set is still open 

爲了解決這個問題下面的代碼可用於:

$CMySQL->query($VSQL); 

$RResult = $CMySQL->store_result(); 

$ARow = $RResult->fetch_assoc(); 

$RResult->free(); 

$CMySQL->next_result() 

$CMySQL->query($VSQL); // should work now 

總之我不認爲你的錯誤的原因是在查詢中,而不是你的代碼中發生的事情,並導致你的MySQL連接打開。要確定這是麥偉鋒提到的,你可以嘗試在獨立客戶端運行查詢,或者如果你想在代碼中執行查詢,請爲此查詢打開一個新連接,以查看錯誤是否再次出現。

問候,

詹姆斯

+0

問題是忘記代碼,我在phpmyadmin中運行這個查詢,如果你認爲它是代碼問題,那麼phpmyadmin挑釁地有一些錯誤 –

+0

你是否登錄過新鮮的phpmyadmin並嘗試它作爲第一個命令?我永遠不會期望從單個查詢運行數據庫。如果你想發佈一些測試數據,我會通過終端針對你的數據庫運行這個查詢。正如你可以從文檔中看到的,在這種情況下發生的這個錯誤信息完全是雜項的。 http://dev.mysql.com/doc/refman/5.7/en/commands-out-of-sync.html –

+0

錯誤已經發生,你可以看到,我的數據有些機密,所以不能分享它,是的,我已經嘗試了它作爲新登錄後的第一個命令,但沒有工作,雖然相同的錯誤 –