Это строка кода, вызывающая ошибку:
$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" значение, которое я хочу найти, и значение, которое хранится в базе данных. Я не уверен, что это просто сокращается для сообщения об ошибке, если что-то еще происходит.
Попробуйте перейти от '(апострофа) к' (backtick) или просто удалить одиночные кавычки из имени db/table, поэтому ваш запрос выглядит так:
SELECT * FROM 'accounts'.'users' WHERE email='$email' AND hash='$hash' AND active='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);