为什么在mysql中查询有效,prepare语句有效,而bind_param无效?

0md85ypi  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(301)

**结案。**此问题不可复制或由打字错误引起。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。

两年前关门了。
改进这个问题
我的问题是:

$query = 'DELETE FROM foo WHERE id =' . $foo;

在这里 $foo = 1 这个查询在mysql中正确执行,带有查询参数的prepare语句为我返回一个对象(所以我假设它已经成功准备好了)。
但是当我想把它绑起来的时候( $stmt->bind_param('i', $foo) ),对我来说它返回false。在其他地方(使用几乎精确的查询),我的bind_参数工作得非常好。
有人能告诉我谁能引起这个问题吗?
我的完整代码:

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
}
qvk1mo1f

qvk1mo1f1#

你需要像这样改变查询below:-

public function foo($foo)
{
    $query = 'DELETE FROM foo WHERE id =?'; //check the change here
    $stmt = $this->connection->prepare($query); 
    $stmt->bind_param('i', $foo); 
}

reference:-
mysqli\u stmt::bind\u参数
PDO语句::bindparam

相关问题