令人沮丧的PDO错误?

时间:2012-07-29 15:13:49

标签: php database 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]:语法错误或访问冲突:1064您有   SQL语法错误;查看与您的手册相对应的手册   在''GroupTable'附近使用正确语法的MySQL服务器版本   在第1行

我试过引用/取消引用表/列名称,如果没有引用,我会收到此错误:

  

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

我检查过并仔细检查过,表格肯定称为GroupTable,该列绝对称为Group。

我很抱歉,如果这是非常显而易见或非常重要的事情,我只是想搞清楚这一点,看看我是否可以学习基础知识,如果代码不符合标准等道歉。

1 个答案:

答案 0 :(得分:2)

这里有两个问题:

  • GROUP is a reserved word in mySQL,因此仅在引用时才有效。
  • 表和列名称需要使用反引号引用,而不是简单的引号:

    SELECT `Group` from `GroupTable`