mysqli bind_param不工作php

时间:2016-07-13 17:54:36

标签: php mysql mysqli

我正在学习mysqli_。如果我在没有bind_param的情况下运行查询,它会起作用,但是如果我添加bind_param,我的查询就会停止工作。

这是我的代码:

// Make a connection to database.
$user = 'test';
$sql = "SELECT * FROM `user` WHERE `user` = ?";
$querySelect = $mysqli->prepare($sql);
$querySelect->bind_param('s', $user);
$querySelect->execute();
echo 'N: '.$querySelect->num_rows.'<br>'; // Got 0, but the correct result is 1.

错误:

  

在非对象

上调用成员函数bind_param()

1 个答案:

答案 0 :(得分:1)

我猜这行返回false:

$querySelect = $mysqli->prepare($sql);

尝试做:

var_dump($querySelect);

为了确定。如果返回false,则表示从数据库获取数据用户有错误(错误的表,连接,表列,...)

但是这个sql也很奇怪:

$sql = "SELECT * FROM `user` WHERE `user` = ?";

也许你想写:

$sql = "SELECT * FROM `user` WHERE `user_id` = ?";

所以,user_id而不是user或者也许只是id,取决于你主键的名称