0

我只是第一次涉足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 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“GroupTable”附近使用正确的语法

我尝试引用/取消引用表/列名,当未引用时出现此错误:

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

我检查并仔细检查了,该表绝对称为 GroupTable,该列绝对称为 Group。

很抱歉,如果这真的很明显或很笨拙,我只是想解决这个问题,看看我是否可以学习基础知识,如果代码不符合标准,请道歉等。

4

1 回答 1

2

这里有两个问题:

  • GROUP 是 mySQL 中的保留字,因此仅在引用时才有效。
  • 表名和列名需要使用反引号引用,而不是简单的引号:

    SELECT `Group` from `GroupTable`
    
于 2012-07-29T15:17:09.737 回答