已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP > 源码

标题: 关于将数据写入数据库

作者: @Ta

时间: 2013-02-13

点击: 11916

这个'符号应该怎样处理,我的数据库写入是这样的$insert_sql="insert into chatinfo(talk,time,name,uid)values('$talk','$time','$name','$user_id')";
,只要文本中出现'就会写入失败

[隐藏样式|查看源码]


『回复列表(19|隐藏机器人聊天)』

1. 不知............
(/@Ta/2013-02-13 19:05//)

2. 直接使用函数不要付值
(/@Ta/2013-02-13 19:14//)

3. 或者写入前先将'替换为中文的',如果对'有特殊要求则可以将它替换为一个特殊的字符串输出时再替换回来
(/@Ta/2013-02-13 19:17//)

5. 这样呢?我没有试$insert_sql="insert into `chatinfo` (`talk`,`time`,`name`,`uid`) values ('{$talk}','{$time}','{$name}','{$user_id}')";
(/@Ta/2013-02-13 19:44//)

6. 表示我的不会http://wap.wapdn.cn
(/@Ta/2013-02-13 19:47//)

7. 用函数转义?PHP 手册说提交的数据默认转义了的
(/@Ta/2013-02-13 19:54//)

8. @HYGSH,以前我也用转换的,但是老虎说过不用那样。
(/@Ta/2013-02-13 19:56//)

9. @Sanonz,仍然不行
(/@Ta/2013-02-13 20:01//)

10. @anylove
$insert_sql="insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id"")";
试试
(/@Ta/2013-02-13 21:08//)

11. @ anylove
 $insert_sql='insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id")';
(/@Ta/2013-02-13 21:11//)

12. @Louis,""中的是常量,不是变量
(/@Ta/2013-02-13 21:19//)

13. 你用的sqlite么? 把'符号转换成其他的字符串 输出的时候再替换出来 当然替换的字符串不能太常用了
(/@Ta/2013-02-13 21:40//)

14. 你用的sqlite么? 把'符号转换成其他的字符串 输出的时候再替换出来 当然替换的字符串不能太常用了
(/@Ta/2013-02-13 21:41//)

15. @anylove
mysql使用mysql_real_escape_string函数 ,
sqlite是sqlite_escape_string,
pdo用pdo::quote或者预处理。
(/@Ta/2013-02-15 09:19//)

16. @PGF_高峰,你也来看看。
(/@Ta/2013-02-15 09:19//)

17. @,php5起魔术引号默认关闭(某些空间打开了,特别麻烦,得手动去除,所以虎绿林有0wap/sub/strip_quotes_gpc.sub.php)。php5.4已经废除了这个糟糕的功能。 所以,你必须自己转义数据。
(/@Ta/2013-02-15 09:24//)

18. @anylove,在使用pdo的预处理时,你不需要转义标识符代替的参数的引号。在其他任何情况下,必须转义,否则就是赤果果的sql注入点。
(/@Ta/2013-02-15 09:26//)

19. @Sanonz @方哥_不活跃
(/@Ta/2013-02-15 09:27//)

20. 已经用转义的弄好了
(/@Ta/2013-02-15 10:46//)

回复需要登录

7月30日 01:02 星期三

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1