Php 使用绑定参数时mysqli执行失败
我有一个用于登录数据库的mysql查询,但由于某种原因,它返回-1,即使我输入了正确的值,并且相同的查询在没有bind_参数的情况下执行Php 使用绑定参数时mysqli执行失败,php,mysql,mysqli,Php,Mysql,Mysqli,我有一个用于登录数据库的mysql查询,但由于某种原因,它返回-1,即使我输入了正确的值,并且相同的查询在没有bind_参数的情况下执行 $username = $_POST['username']; $password = md5($_POST['password']); $user_array = array('username' => $username,'password' => $password ); $queryname = "SELECT username, pa
$username = $_POST['username'];
$password = md5($_POST['password']);
$user_array = array('username' => $username,'password' => $password );
$queryname = "SELECT username, password FROM user WHERE username = ? AND password = ?";
function auth($queryname,$user_array) {
$stmt = $this->connection->prepare($queryname);
$stmt->bind_param('ss', $user, $pass);
$user=$user_array['username'];
$pass=$user_array['password'];
$stmt->execute();
return $stmt->affected_rows;
}
关于如何调试这个问题,有什么建议吗?:
此函数仅适用于更新表的查询。要从SELECT查询中获取行数,请改用
更改返回$stmt->受影响的行代码>至:
$stmt->store_result();
$count = $stmt->num_rows;
$stmt->close();
return $count;
我现在已经这样做了,from~“-1表示查询返回了一个错误”。另外,一个SELECT
查询永远不会导致受影响的行
@Phil我的绑定参数中可能有什么错误吗我使用的是md5散列文本,它存储为varchar在创建连接之前运行这个mysqli_报告(mysqli_报告错误| mysqli_报告严格)代码>并看着错误滚滚而来;)谢谢,虽然我的解决方案得到了其他人的回答,但我现在知道了一种更好的调试方法mysqli@Bazinga777此外,还必须关闭$stmt:请参阅修改的代码