gpt4 book ai didi

php - 我错过了什么,一直给成员函数调用错误?

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

我正在尝试构建一个简单的查询来处理搜索结果。稍后我将使其成为 PDO 安全的,但现在,我不断收到对非对象错误的成员函数execute() 的调用,但我看不到下面导致此问题的任何内容。错误出现在 $results->execute(); 行

PDO 对象/连接工作正常,我的代码可以在除此之外的所有其他页面上工作。我到底错过了什么?不知何故有些语法错误?

$last = $_GET['last'];
$author = $_GET['author'];

$results = $dbh->prepare("select
wp_users.ID AS user_id,
wp_users.ID,
wp_users.display_name,
FROM wp_users
WHERE wp_users.display_name = $author; ");
$results->execute();
$row = $results->fetchAll(PDO::FETCH_ASSOC);

最佳答案

If the database server successfully prepares the statement, PDO::prepare() returns a PDOStatement object. If the database server cannot successfully prepare the statement, PDO::prepare() returns FALSE or emits PDOException (depending on error handling).

它返回 false,很可能是由于无效的 sql。要检查实际错误,您可以执行以下操作:

if (!$results) {
echo "\nPDO::errorInfo():\n";
print_r($dbh->errorInfo());
}

最有可能的是,您使用的变量没有被引用,这就是为什么您应该一开始就使用命名参数,因为它实际上并没有变得更困难:

 $results = $dbh->prepare("select wp_users.ID AS user_id, 
wp_users.ID,
wp_users.display_name,
FROM wp_users
WHERE wp_users.display_name = :author");

$results->execute([':author' => $author]);

关于php - 我错过了什么,一直给成员函数调用错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31866940/

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