MySQL查询错误SQL语法PDO
问题描述:
这是MySQL的代码我尝试运行:MySQL查询错误SQL语法PDO
SELECT i.id, i.courseid, i.title, i.info, i.lasteditedby, u.id, u.forename, u.surname
FROM courseinformation as i JOIN users AS u ON (i.lasteditedby = u.id)
WHERE i.courseid = :courseid
ORDER BY i.id desc LIMIT 2;
即时得到这个错误:
/* SQL Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':courseid ORDER BY i.id desc LIMIT 2' at line 1 */
我的目标是获得ID,courseid,标题,信息,从CourseInformation表中继承,然后从用户表中获取Id,forename和surname。用户标识与lastededby相同。
我还真看不出来,因为我已经使用
:courseid
其他PDO SQL querys
是香港专业教育学院运行
参考什么SQL语法错了,这是我的PHP代码与该SQL在
$courseid = 'G11111';
$sql = "SELECT i.id, i.courseid, i.title, i.info, i.lasteditedby, u.id, u.forename, u.surname FROM courseinformation as i JOIN users AS u ON (i.lasteditedby = u.id) WHERE i.courseid = :courseid ORDER BY i.id desc LIMIT 2";
$sql->bindParam(":courseid", $courseid);
$sql->execute();
foreach ($db->query($sql) as $row) {
echo '<div class="announceTitle">';
echo $row['title'].'<br />';
echo $row['forename'].' '.$row['surname'].'<br />';
echo '</div>
<div class="announceText">';
echo $row['info'];
echo '</div>
<br />
<br />';
}
任何人都可以请指出我的方向,以什么是错的? 感谢您的阅读
答
您还没有创建语句句柄,您已经创建了一个字符串。
的tutorial建议如下:
$sth = $db->prepare("SELECT i.id, i.courseid, i.title, i.info, i.lasteditedby, u.id, u.forename, u.surname FROM courseinformation as i JOIN users AS u ON (i.lasteditedby = u.id) WHERE i.courseid = :courseid ORDER BY i.id desc LIMIT 2");
$sth->bindParam(":courseid", $courseid);
以后你$db->query
执行这个字符串就是错误的结果哪里,是你可能需要更好的例子从工作的标志,因为这似乎是一个几矛盾的技术被同时应用。
+0
谢谢你这么多!并感谢该教程:) – user1842842 2013-03-05 21:12:39
我不明白..'$ sql'是一个字符串,所以调用'bindParam'就应该给一个致命的PHP错误 – 2013-03-05 20:44:22