У меня возникли некоторые проблемы с синтаксисом SQL / переменными экранирования на моем сервере LAMP.
Я хочу использовать следующую команду:
$sql=mysql_query("INSERT INTO '$table' (FirstName, LastName, StartDate, TimeStroke, DueDate, Duration, Price, Retailer, Checksum)
VALUES ('$_POST[firstname]','$_POST[lastname]','$_POST[startdate]','$_POST[timestroke]','$duedate','$_POST[duration]','$price','$_SESSION[name]','$random')");
Проблема заключается виногда переменная $ table содержит символы типа å, ä и ö.Следовательно, мне нужно поставить '' вокруг таблицы $, чтобы убедиться, что она остается прежней.Однако при этом получаются сообщения об ошибке:
"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 ''tablename' (FirstName, LastName, StartDate, TimeStroke, DueDate, Duration, P' at line 1".
Похоже, что экранирование с помощью '' создает проблему.Я пытался заменить запрос на mysql_real_escape_string:
"$sql=sprintf("INSERT INTO '".mysql_real_escape_string($table)."' (FirstName, [...]"
, но это мне тоже не помогает.Есть ли способ сохранить данные в переменной без изменений и при этом иметь возможность выполнять запрос?Или я должен признать, что å, ä, ö запрещены в php / MySQL?