Текст ошибки SQL дает мне другое значение, чем фактическое значение

0

Это строка кода, вызывающая ошибку:

$result = $mysqli->query("SELECT * FROM 'accounts'.'users' WHERE email='$email' AND hash='$hash' AND active='0'") or die($mysqli->error);

и это ошибка, которая показывает:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''accounts'.'users' WHERE email='[email protected]' AND hash='76dc611d6eba' at line 1

Однако, если я печатаю значение хэша, я получаю это "76dc611d6ebaafc66cc0879c71b5db5c" значение, которое я хочу найти, и значение, которое хранится в базе данных. Я не уверен, что это просто сокращается для сообщения об ошибке, если что-то еще происходит.

Теги:

2 ответа

2
Лучший ответ

Попробуйте перейти от '(апострофа) к' (backtick) или просто удалить одиночные кавычки из имени db/table, поэтому ваш запрос выглядит так:

SELECT * FROM 'accounts'.'users' WHERE email='$email' AND hash='$hash' AND active='0'
  • 0
    Выполнение любого из этих действий (удаление и изменение обратных галочек) выдает мне сообщение об ошибке «База данных не выбрана».
  • 0
    @maxgoodman - вы не выбрали БД при создании объекта mysqli, чтение руководства поможет в этом
Показать ещё 1 комментарий
0

Попробуйте удалить кавычки вокруг имени базы данных и таблицы

$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

if ($mysqli->connect_errno) {
 printf("Connect failed: %s\n", $mysqli->connect_error);
 exit();
}

$result = $mysqli->query("SELECT * FROM accounts.users WHERE email='$email' AND hash='$hash' AND active='0'") or die($mysqli->error);
  • 0
    Это дает мне ошибку «База данных не выбрана»
  • 0
    найти обновленное решение. В вашем случае имя базы данных будет иметь место на первом месте в мире

Ещё вопросы

Сообщество Overcoder
Наверх
Меню