Php 致命错误:未捕获异常';PDO异常';带有消息';SQLSTATE[42000]:4
我一直在做一个学校的项目,我没有问题去做,突然这个错误出现了。我没有对代码进行编辑。当我再次运行它时,会出现此错误 致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第7行“”附近要使用的正确语法 这是我得到的另一个错误 PDOException:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第7行“”附近要使用的正确语法 这就是我提出的问题。我真的找不到问题所在Php 致命错误:未捕获异常';PDO异常';带有消息';SQLSTATE[42000]:4,php,mysql,Php,Mysql,我一直在做一个学校的项目,我没有问题去做,突然这个错误出现了。我没有对代码进行编辑。当我再次运行它时,会出现此错误 致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第7行“”附近要使用的正确语法 这是我得到的另一个错误 PDOException:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与MySQL服务器版本对应的
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;
}
}
在此查询中,必须指定联接类型: 请看下面的示例:
我建议您将查询参数化。您是否尝试回显该查询以查看其外观<代码>echo$sql;模具()对不起,我对这个很陌生,但是我该怎么做呢?很可能是因为
$id
是一个空字符串?(是的,使用准备好的语句)浏览此页面:它解释如何向查询添加参数。有关更多详细信息,请参阅手册:我已经解决了它。问题在于通过函数传递的数据就是问题所在。$id确实是空的。谢谢@Wrikken
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;