2012-07-29 69 views
0

我只是用PDO涉足的第一次,我不斷收到,我真的想不通錯誤,導致該問題的代碼如下:令人沮喪的PDO錯誤?

  <?php 
       try { 
        // Querying the database 
        $STH = $DBH->query("SELECT 'Group' from 'GroupTable'"); 
        // Setting the fetch mode 
        $STH->setFetchMode(PDO::FETCH_ASSOC); 

        while($row = $STH->fetch()) { 
         echo '<option value="',$row['Group'],'">',$row['Group'],'</option>'; 
        } 
       } 
       catch(PDOException $e) { 
        echo "Error connecting to Database"; 
        file_put_contents('logs/logsDB.txt', $e->getMessage(), FILE_APPEND); 
       } 
      ?> 

我不斷收到相同錯誤,即:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''GroupTable'' at line 1

我試過報價/ unquoting表/列名,不帶引號的,當我得到這個錯誤:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Group FROM GroupTable' at line 1

我會檢查和雙通道ecked,該表被DEFINITELY稱爲GroupTable,並且該列肯定被稱爲Group。

對不起,如果這確實明顯或nooby,我只是想惹這個局面,看看我能學到的基礎知識,道歉,如果代碼不符合標準等

回答

2

兩個問題在這裏:

  • GROUPis a reserved word in mySQL,所以它會只引用時使用。
  • 表和列名需要被引用使用反引號,而不是簡單的報價:

    SELECT `Group` from `GroupTable` 
    
+0

謝謝!原來反引號是這裏的問題,雖然我覺得奇怪的是他們決定在引號在其他語言中使用時反引號(這是我第一次不得不使用反引號) – Sean 2012-07-29 15:23:02

+1

@SeanDunwoody:使用引號代表**字符串**其中,tick用於表示**表和數據庫名稱**。 – 2012-07-29 15:25:32

+0

我的理解是,當這些事情習慣於我習慣的舊SQL查詢時,我很奇怪,我不確定他們爲什麼決定從這個''切換到' – Sean 2012-07-29 15:26:49

相關問題