令人沮丧的PDO错误


Frustrating PDO error?

我只是第一次接触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]:语法错误或访问冲突:1064您有SQL语法错误;查看与您的在"GroupTable"附近使用正确语法的MySQL服务器版本在第1行

我试着引用/取消引用表/列名,当取消引用时,我会得到以下错误:

SQLSTATE[42000]:语法错误或访问冲突:1064您有SQL语法错误;查看与您的在"Group FROM"附近使用正确语法的MySQL服务器版本第1行的GroupTable

我检查了一遍又一遍,表肯定叫GroupTable,列肯定叫Group。

如果这真的很明显,我很抱歉,我只是想把它弄得一团糟,看看我是否能学到基本知识,如果代码不符合标准,我也很抱歉。

这里有两个问题:

  • GROUP在mySQL中是一个保留字,因此它只有在被引用时才起作用
  • 表和列名需要使用反引号,而不是简单的引号:

    SELECT `Group` from `GroupTable`