我在我的LAMP服务器上遇到了一些SQL语法/转义变量的问题。php,MySQL和变量包含å,ä和ö转义问题
我想使用的命令如下:
$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')");
的问题是,有时$表变量包含象,A型和O字符。 因此我需要在$ 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吗?
谢谢!读它吧! – xeet 2010-08-13 15:54:33
谢谢! NIce,但现在我正在从数据库中获取所有内容的奇怪字符。 现在,我必须转换数据库才能从表中获取信息,然后在表单中重用它? – xeet 2010-08-13 18:03:38
表中的字符编码是什么?你能举出一些“奇怪的人物”的例子,他们应该是什么样的人。 – 2010-08-13 18:16:32