致命错误:未捕获的异常'PDOException',消息为'SQLSTATE [42000]:4

时间:2014-11-26 22:25:11

标签: php mysql

我一直在研究一个我没有遇到任何问题的学校项目,突然出现这个错误。我没有编辑代码上的东西。当我再次运行它时会出现此错误。

  

致命错误:带有消息'SQLSTATE [42000]的未捕获异常'PDOException':语法错误或访问冲突:1064 SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第7行''附近使用正确的语法   这是我遇到的另一个错误。

     

PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在第7行的''附近使用正确的语法

这是我发的查询。我真的找不到问题所在。

    class Subject {        

    function getSubjectList($id) {
        global $db;            

        $sql = "SELECT class_id, c.subject_id, subject_desc, units, day, time
                FROM class c 
                JOIN subject s 
                ON  c.subject_id = s.subject_id
                JOIN lecturer l 
                ON c.lec_id = l.lec_id 
                WHERE l.lec_id = $id";

        $stmt = $db->query($sql);

        while($r = $stmt->fetch()) {
            $result[] = $r['class_id'];
            $result[] = $r['subject_id'];
            $result[] = $r['subject_desc'];
            $result[] = $r['units']; 
            $result[] = $r['day'];
            $result[] = $r["time"];
            $result[] = $r['class_id'];
        }

        return $result;            
    }
}

1 个答案:

答案 0 :(得分:-1)

在此查询中,您必须指定连接类型:http://dev.mysql.com/doc/refman/5.0/en/join.html

看下面的例子:

SELECT class_id, c.subject_id, subject_desc, units, day, time
                FROM class c 
                INNER JOIN subject s 
                ON  c.subject_id = s.subject_id
                INNER JOIN lecturer l 
                ON c.lec_id = l.lec_id 
                WHERE l.lec_id = $id;