Im создание системы входа для моего сайта. меня проблема, что мой mysqli_query пуст:mysqli_query дает пустое значение
Код: $r = mysqli_query($dbc, $q); returns empty.
Я думаю, что проблема в языке SQL, что я передать его:
$q = "SELECT userid, fname, lname FROM User WHERE email='$e' AND pass=SHA1('$p')";
Если я выполнить SQL выше с данными, которые im фактически извлекает из формы, тогда я получу результат, который я ищу. Так что я думаю, что его php и sql вместе взятые получили ошибку.
if(empty($errors)){
$q = "SELECT userid, fname, lname FROM User WHERE email='$e' AND pass=SHA1('$p')";
$r = mysqli_query($dbc, $q);
//Check for right data
$errors[] = $e;
$errors[] = $p;
//Check if connection is up
if($dbc != null){
$errors[] = "Connection up";
}
//Check query
if(is_null($r)){
$errors[] = "Query is null";
}
//Check query for being empty
if(empty($r)){
$errors[] = "Its empty";
}
if(mysqli_num_rows($r) == 1){
$row = mysqli_fetch_array($r, MYSQLI_ASSOC);
return array(true, $row);
}else{
$errors[] = "Email address and password not found.";
}
return array(false, $errors);
}
ли запрос приводит к ошибке, или просто не найти каких-либо результатов? Если последний, каков фактический выполняемый запрос времени выполнения и соответствует ли он результатам в базе данных? Если вы выполняете тот же запрос вручную против базы данных, результаты отличаются? – David
Его при вызове if (empty ($ r)) {$ error [] = "Его пустой";} что он говорит, что $ r пуст. Если я возьму инструкцию sql и запустил ее в базе данных, я получу результаты, которые я хочу. – McBoman
Если «пустой» означает, что произошла ошибка, проверьте базу данных на наличие ошибок. Если «empty» означает, что результатов не было найдено, проверьте запрос вручную по базе данных и посмотрите, что вы найдете. Если никакая запись в таблице не соответствует критериям в предложении WHERE, результаты не будут возвращены. (Примечание: ваши логотипы после этого сломаны. Если число результатов больше одного, что вряд ли означает, что адрес электронной почты и пароль не найдены ...) – David