Я боролся часами с этим просто:
$var=var; $result = "SELECT column1, column2 FROM $db WHERE column3 = '$var' ";
Ошибка, которую я получаю: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с '\' var \ '' в строке 1
Имена верны, он работает в запросе mysql. Думаю, я пробовал все возможные варианты цитирования, что не так?
UPDATE: по запросу я использовал экранирование, но ошибка остается той же
$var=var; $var = $conn->real_escape_string($var); $result = "SELECT column1, column2 FROM {$db} WHERE column3 = '{$var}' ";
Должно быть
$var = $mysqli->real_escape_string($var); $sql = "SELECT column1, column2 FROM {$db} WHERE column3 = '{$var}' ";
Вместо:
$result = "SELECT column1, column2 FROM $db WHERE column3 = '$var' "; $result = $mysqli->real_escape_string($result) ; //Totally wrong.
Я тестировал в консоли mysql с плохим SQL-запросом:
mysql> SELECT column1, column2 FROM WHERE column3 = 'varvalue';
Он дает эту ошибку:
ERROR 1064 (42000): 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 'WHERE column3 = 'varvalue'' at line 1
Фактически имя таблицы отсутствует. Я предполагаю, что ваша переменная $ db может быть нулевой / пустой / unset.
Пожалуйста попробуйте :
$db = "mytable"; $var = "varvalue"; $result = "SELECT column1, column2 FROM $db WHERE column3 = '$var' ";