Mysqli准备的语句在SQL中工作,但在我的应用程序中不起作用


Mysqli prepared statement working in SQL but not in my application

我正在尝试用这个从我的数据库中检索最近的日期:

$stmt2 = $conn->prepare("SELECT reportDate FROM reports WHERE bot=? ORDER BY reportDate DESC LIMIT ?");
$limit = 1;
$stmt2->bind_param("ii", $id, $limit);
$stmt2->execute();
$stmt2->bind_result($lastSeen);

我收到错误:

PHP 致命错误:调用非对象上的成员函数 bind_param((

我知道这通常发生在 SQL 语句中存在语法错误时,但我尝试在 phpmyadmin 中运行它,它就像一个魅力。有什么建议吗?

LIMIT 通常不会从准备好的语句中获取任何参数,因此您的prepare失败。这就是为什么您在下一次调用时看到该错误的原因。

还要通过如何在 LIMIT 子句中应用 bindValue 方法? 和 MySQL 上的 LIMIT 关键字与预准备语句

$stmt2不是

对象,请尝试var_dump()它。