zzWerOk
@zzWerOk
Эм...

Пустой результат mysqli_query($link,$query), где искать?

Что не так?

В php файле на сервере такой код
$query = "SELECT * FROM users WHERE `username`= '$username_login' LIMIT 1";
$result = mysqli_query($link,$query);

$result пустой. Вообще пустой.

Если через phphmyadmin в sql запрос вставить сам запрос, то находит данные в таблице.
Через сервер не хочет.

Раньше, примерно с месяц назад, все работало на ура. Настройки сервера не менял.

Как исправить?

Спасибо...
  • Вопрос задан
  • 1738 просмотров
Пригласить эксперта
Ответы на вопрос 3
AlekseyNemiro
@AlekseyNemiro
full-stack developer
Получить информацию об ошибках при работе с MySql можно при помощи функции mysqli_error.

printf("Errormessage: %s\n", mysqli_error($link));

$query = "SELECT * FROM users WHERE `username`= '$username_login' LIMIT 1";

Что будет, если убрать условие и сделать такой запрос:

$query = "SELECT * FROM users LIMIT 1";

Если запрос успешно выполнится, то вероятно проблема в значении переменной $username_login.

Передавать значения из переменных прямо в текст запроса не рекомендуется. Лучше передавать через параметры, или как минимум экранировать потенциально опасные символы.

Если результатов не будет, то необходимо проверить строку соединения и успешность соединения с базой данных. Проверить наличие ошибок при соединении можно с помощью функции mysqli_connect_error:
$link = mysqli_connect("localhost", "имя пользователя", "пароль", "имя базы");

if (!$link)
{
    echo mysqli_connect_error();
}
Ответ написан
winbackgo
@winbackgo
А $username_login это $_POST['username_login']? Экранируются данные этой переменной? Возможно вам поможет функция mysqli_error.
Ответ написан
Комментировать
zzWerOk
@zzWerOk Автор вопроса
Эм...
mysqli_error = пусто. Т.е. нет ошибок (из документации)

"SELECT * FROM users LIMIT 1" - так же пусто как и в первом запросе.

и как это понять? хм..

решил проблему.

Хостер поменял host к бд. Уточнил в онлайн справке и все заработало как и раньше.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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