繁体   English   中英

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

[英]How should I format my string before inserting it into a mysql table?

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

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

$description = $_POST['description'];

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

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

编辑:输入真实数据,例如对 Monsters Inc. 的描述。在一个没有人类的怪物城市中,Monstropolis 以该市的电力公司 Monsters, Inc. 为中心。 Monsters, Inc. 可爱的知己、坚韧的大型、毛茸茸的蓝色庞然大物,名叫 James P. Sullivan(AKA 更为人所知的是 Sulley)和他的独眼巨人俏皮话最好的朋友,一只大眼睛的矮个子、绿色怪物,Mike Wazowski 发现会发生什么当现实世界以一个被称为“Boo”的 2 岁女婴的形式与他们的世界互动时,她一天晚上不小心与 Sulley 潜入了怪物世界。 现在轮到 Sulley 和 Mike 把 Boo 送回她的门前,尤其是两个邪恶的恶棍,比如 Sulley 的主要对手,一个像变色龙一样可怕的 Randall(Boo 非常害怕的怪物),他有能力改变他的皮肤颜色和 Mike 和 Sulley 的老板 Waternoose 先生,Monsters, Inc 的董事长兼首席执行官

不起作用,但我不确定是什么“破坏”了它 - 即它是双引号还是括号。

你应该看看mysql_real_escape_string

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM