我有一个查询,例如:
$query = 'DELETE FROM foo WHERE id =' . $foo;
这里$foo = 1
此查询在MySQL中正确执行,并且带有查询参数的prepare语句为我返回了一个对象(因此,我假设它已成功准备)。
但是当我尝试绑定它($stmt->bind_param('i', $foo)
)时,它为我返回false。在其他地方(几乎完全准确的查询),我的bind_param可以完美地工作。
有人可以告诉我谁可以导致此问题吗?
我的完整代码:
public function foo($foo)
{
$query = 'DELETE FROM foo WHERE id =' . $foo; // I pass 1 here
$stmt = $this->connection->prepare($query); // returns an object
var_dump($stmt->bind_param('i', $foo)); // returns false
}
答案 0 :(得分:5)
您需要更改查询,如下所示:-
public function foo($foo)
{
$query = 'DELETE FROM foo WHERE id =?'; //check the change here
$stmt = $this->connection->prepare($query);
$stmt->bind_param('i', $foo);
}
参考:-