我正在学习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()
答案 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,取决于你主键的名称