我有一個正在處理的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'];
...
爲什麼不工作?查詢本身應返回一個包含用戶名電子郵件,密碼(實際上是散列值),他的角色等的結果的數組。