我有一个正在处理的MySQL查询,直到我改变它为了使用预处理语句。 我想不通为什么我得到这个错误:PHP:为什么mysqli_fetch_assoc()不起作用?我正在使用mysqli_stmt_get_result()
mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, object given
查询(此日志中的表格)应只返回一个结果:
$conectar = mysqli_connect(localhost, USER, PASS, DATABASE);
//from the log in form
$email = $_POST['email'];
$clave = $_POST['clave'];
//this should get me just one result: the user to which the email belongs.
$consulta = "SELECT usuarios.userID, usuarios.userPass, usuarios.userEmail, usuarios.userPass, usuarios.userFechaGeneracion, usuarios.userNombres, rolesUsuarios.nombreRol,
GROUP_CONCAT(rolesUsuarios.nombreRol SEPARATOR '|') AS roles
FROM rolesUsuarios, usuarios
WHERE usuarios.userEmail=?
AND rolesUsuarios.userID = usuarios.userID
GROUP BY usuarios.userID
";
$buscarUsuario = mysqli_prepare($conectar,$consulta);
mysqli_stmt_bind_param($buscarUsuario, 's', $email);
mysqli_stmt_execute($buscarUsuario);
if (mysqli_stmt_get_result($buscarUsuario)) {
$row = mysqli_fetch_assoc($buscarUsuario);
$originalPass = $row['userPass'];
...
为什么不工作?查询本身应返回一个包含用户名电子邮件,密码(实际上是散列值),他的角色等的结果的数组。