簡體   English   中英

帶引號的SQL查詢不會返回結果

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM