3. 或者写入前先将'替换为中文的',如果对'有特殊要求则可以将它替换为一个特殊的字符串输出时再替换回来
5. 这样呢?我没有试$insert_sql="insert into `chatinfo` (`talk`,`time`,`name`,`uid`) values ('{$talk}','{$time}','{$name}','{$user_id}')";
7. 用函数转义?PHP 手册说提交的数据默认转义了的
10.
@anylove$insert_sql="insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id"")";
试试
11. @ anylove
$insert_sql='insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id")';
13. 你用的sqlite么? 把'符号转换成其他的字符串 输出的时候再替换出来 当然替换的字符串不能太常用了
14. 你用的sqlite么? 把'符号转换成其他的字符串 输出的时候再替换出来 当然替换的字符串不能太常用了
15.
@anylove,
mysql使用mysql_real_escape_string函数 ,
sqlite是sqlite_escape_string,
pdo用pdo::quote或者预处理。
17.
@洋,php5起魔术引号默认关闭(某些空间打开了,特别麻烦,得手动去除,所以虎绿林有0wap/sub/strip_quotes_gpc.sub.php)。php5.4已经废除了这个糟糕的功能。 所以,你必须自己转义数据。
18.
@anylove,在使用pdo的预处理时,你不需要转义标识符代替的参数的引号。在其他任何情况下,必须转义,否则就是赤果果的sql注入点。