Я просто нахожусь в MySql / MySqli, и я использую подготовленные заявления. Весь мой скрипт работает отлично, за исключением этой отдельной строки:
if ($stmt = $con->prepare("SELECT bandHash, userHash, userPassHash, type FROM account_active WHERE key=?")) {
Я узнал, что это строка, вручную отслеживая ее, затем запустив mysqli_error($resource)
и получив этот результат. 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 'key=?' at line 1
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 'key=?' at line 1
Пожалуйста, не волнуйтесь, что это говорит строка 1, это просто из-за того, как она была выполнена, это на самом деле строка 280.
Итак, что мне интересно, потому что я уже использую такие утверждения, является «ключевым» зарезервированным словом, которое я не могу использовать, или мне нужно искать в другом месте для моей ошибки?
Простой ответ да или нет, спасибо!
Я не знаю, почему вы не могли это посмотреть сами, но, да , key
– это зарезервированное слово в MySQL .
Вы должны использовать обратные ссылки с именами полей, чтобы избежать необходимости беспокоиться об этом.
SELECT `bandHash`, `userHash`, `userPassHash`, `type` FROM `account_active` WHERE `key` = ?
Это не только решает вашу проблему, но и становится более явным и (как вы можете видеть) вспомогательным синтаксисом.
Да, ключ – это зарезервированное слово
Я бы подумал о переименовании, чтобы избежать использования цитируемого имени во всем мире
`key`