gpt4 book ai didi

php - PDO:FetchAll 返回空数组

转载 作者:行者123 更新时间:2023-11-30 23:04:51 25 4
gpt4 key购买 nike

当我尝试执行以下代码时,我一直收到一个空数组:

$this->DB->prepare('SELECT * FROM Articles WHERE Author = :username AND Timestamp < :timestamp ORDER BY Timestamp DESC LIMIT :limit;');
$this->DB->bind(':username', $username);
$this->DB->bind(':timestamp', $start);
$this->DB->bind(':limit', $numberOfResults, \PDO::PARAM_INT);
$data = $this->DB->execute();

这些是bindprepareexecute 函数:

public function bind($placeholder, $value, $type = \PDO::PARAM_STR) {

$this->preparedQuery->bindParam($placeholder, $value, $type);
}

public function prepare($query) {

if(!$this->preparedQuery = $this->connection->prepare($query)) {

print_r($this->connection->errorInfo());
die();
}
}

public function execute() {

if(!$this->preparedQuery->execute()) {

print_r($this->preparedQuery->errorInfo());
die();
}

return $this->preparedQuery->fetchAll(\PDO::FETCH_ASSOC);
}

我也曾尝试在 MySQL Workbench 中手动执行查询,它运行良好。

编辑:

这是查询的样子:

SELECT * FROM Articles WHERE Author = "TestUser" AND Timestamp < "9000-12-31 23:59:59" ORDER BY Timestamp DESC LIMIT 10;

编辑 2:

我刚刚发现,如果我删除有关 Timestamp 的条件,查询将正确返回值。

最佳答案

我终于找到了解决方案。

感谢编辑 2,我意识到,就像我 90% 的错误一样,这是一个愚蠢的错误。

即使代码在函数声明中正确初始化,$start 变量实际上是空的。这导致将空字符串传递给 bindParam() 函数。

个人评论:我是个白痴

关于php - PDO:FetchAll 返回空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22324694/

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