gpt4 book ai didi

php - 带引号的 SQL 查询不返回结果

转载 作者:行者123 更新时间:2023-11-29 07:49:58 25 4
gpt4 key购买 nike

我正在尝试使用 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.:引号没有转义,也没有在我的数据库中进行任何转义。

最佳答案

可能导致您有整数类型的字段并尝试发送字符串

$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;
}

关于php - 带引号的 SQL 查询不返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com