Задать вопрос

Возникла проблема с запросом к бд, в чем проблема?

Уже давно мучаюсь над проблемой с запросом к бд. Запрос верный, в бд находит записи, однако доставать данные из бд не хочет и при дампе переменной $query, выводит Null либо:
object(mysqli_result)#1 (5) { ["current_field"]=> int(0) ["field_count"]=> int(4) ["lengths"]=> NULL ["num_rows"]=> int(1) ["type"]=> int(0) }

Вот мой код:
if (isset($_POST['submit_auth'])) {
if (!isset($_COOKIE['UserLogin'])) {
$login = $_POST['login'];
$password = $_POST['password'];
$con = mysqli_connect("localhost","login","password","table") or die('Не удалось подключиться');
$query = mysqli_query($con, "SELECT * FROM table WHERE `login` = '$login'");
var_dump($query);
$hash = $query->fetch_assoc()['password'];
$query = mysqli_fetch_assoc($query);
if ($login == $query['login'] or $login == $query['mail']) {
if (password_verify($password,$hash)) {
setcookie('UserLogin', $query['login']);
echo '<script type="text/javascript">window.location.href="/"</script>';

}else{
echo "<p class='RU-font-family' style='color:red;'>Вы ввели неверный пароль</p>";
print_r($query['password']);
}
}else{
echo "<p class='RU-font-family' style='color:red;'>Вы ввели неверные данные</p>";
$text = "SELECT * FROM users WHERE login = '$login'";
var_dump($text);
}
}
}
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
@dtBlack
$hash = $query->fetch_assoc()['password'];
$query = mysqli_fetch_assoc($query);

Уточните в первую очередь, что вы пытаетесь получить этими строками кода? Зачем вызывать одно и тоже в двух разных формах?

Так же вопрос к именованию переменных, что происходит по коду с $query?

Что вам мешает вызвать один раз $data = $query->fetch_assoc() и далее работать с $data.

Подумайте внимательно что происходит при первом вызове fetch_assoc() и повторном вызове?

Возможно раньше работало так как у вас было две записи возвращаемых запросом а теперь одна?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alexsteadfast
I am noob
$con = mysqli_connect("localhost","login","password","table") or die('Не удалось подключиться');
заменить на 
$con = mysqli_connect("localhost",$login,$password,$table) or die('Не удалось подключиться');

Необходимо завести переменную $table, $table = "Нужная таблица"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы