在将其插入mysql表之前,我应该如何格式化我的字符串?

时间:2011-05-29 18:02:00

标签: php mysql

所以我正在创建这个应用程序来存储有关细节的电影,一切正常,直到我将操作系统从Mac更改为Ubuntu。

用户发布有关电影的详细信息,PHP脚本将其插入表格中;所以,在一个非常基本的层面上:

$description = $_POST['description'];

mysql_query("insert into film (description) values ('$description')"); 

编辑: 有时候它有效,有时却没有 - 我假设它与引号和变量(我正在输入的电影描述)有关,我正在插入。描述列的描述是文本。当我输入一些没有标点符号的随机内容时它会起作用。

编辑: 输入真实数据,例如Monsters Inc.的描述 在这个城市的电力公司Monsters,Inc。周围,一个没有人类称为Monstropolis的怪物城市。 Monsters,Inc。可爱的知己,坚韧的大型,毛茸茸的蓝色庞然大物般的巨型怪物,名叫詹姆斯·沙利文(又称苏利),他的独眼巨人狡猾的朋友,一只大眼睛的绿色怪物,迈克瓦佐夫斯基发现了什么当现实世界以一个名叫“Boo”的2岁女婴的形式与他们互动时,一天晚上他与Sulley意外地潜入怪物世界。而且现在由Sulley和Mike决定将Boo送回她的门之前,任何人,尤其是两个邪恶的恶棍,如Sulley的主要竞争对手,像一个更像变色龙的Randall(一个Boo非常害怕的怪物),拥有能力改变他皮肤的颜色,Mike和Sulley的老板Waternoose先生是Monsters,Inc的董事长兼首席执行官

不起作用,但我不确定是什么'打破'它 - 即它是双引号还是括号。

2 个答案:

答案 0 :(得分:2)

你应该看看mysql_real_escape_string

基本上 - 你需要确保你的字符串中没有任何可能搞乱SQL查询的字符。

答案 1 :(得分:2)

字符串是否在界限范围内?例如,如果您有一个varchar(25)字段,并且您的字符串是124个字符,那么您就遇到了问题。另外,检查字符串的编码。验证您的输入。

接下来,使用mysqli_real_escape_string()进行清理。所有输入都是邪恶的,你已经打开了你的应用程序,直到SQL注入攻击。