[英]SQL query with quotes doesn't return results
我正在嘗試使用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中帶有引號,它仍然可以正常工作。 現在在沒有引號的情況下可以使用,但是在沒有引號的情況下仍然可以使用。 為什么這不起作用?
PS:引號不會轉義或在我的數據庫中沒有任何內容。
可能導致您具有整數類型的字段並嘗試發送字符串
$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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.