我正在尝试使用PDO查询我的sql数据库。有些情况下我的查询中有引号。
function getPageByPagid($pagid) {
$db = dbConnection();
$sql = "SELECT * FROM pages WHERE pagid='".$pagid."'";
$q = $db->prepare($sql);
$q->setFetchMode(PDO::FETCH_ASSOC);
$q->execute();
$results = $q->fetch();
return $results;
}
我正在使用的函数确实准备了我的SQL,如果$ pagid中有引号,它仍然可以工作。现在它在没有引号的情况下工作,但是当有引号时它仍然不存在。为什么这不起作用?
P.S。:报价未转义或我的数据库中的任何内容。
答案 0 :(得分:2)
可能导致您有整数类型的字段并使用
发送字符串尝试$sql = "SELECT * FROM pages WHERE pagid='$pagid'";
或更好地使用占位符(PDO标准)
function getPageByPagid($pagid) {
$db = dbConnection();
$sql = "SELECT * FROM pages WHERE pagid= :pagid";
$q = $db->prepare($sql);
$q->bindParam(':pagid', $pagid);
$q->setFetchMode(PDO::FETCH_ASSOC);
$q->execute();
$results = $q->fetch();
return $results;
}