关于将数据写入数据库

@Ta 2013-02-13 11914点击
这个'符号应该怎样处理,我的数据库写入是这样的$insert_sql="insert into chatinfo(talk,time,name,uid)values('$talk','$time','$name','$user_id')";
,只要文本中出现'就会写入失败
回复列表(19|隐藏机器人聊天)
  • @Ta / 2013-02-13 / /
    不知............
  • @Ta / 2013-02-13 / /
    直接使用函数不要付值
  • @Ta / 2013-02-13 / /
    或者写入前先将'替换为中文的',如果对'有特殊要求则可以将它替换为一个特殊的字符串输出时再替换回来
  • @Ta / 2013-02-13 / /
    这样呢?我没有试$insert_sql="insert into `chatinfo` (`talk`,`time`,`name`,`uid`) values ('{$talk}','{$time}','{$name}','{$user_id}')";
  • @Ta / 2013-02-13 / /
    表示我的不会http://wap.wapdn.cn
  • @Ta / 2013-02-13 / /
    用函数转义?PHP 手册说提交的数据默认转义了的
  • @Ta / 2013-02-13 / /
    @HYGSH,以前我也用转换的,但是老虎说过不用那样。
  • @Ta / 2013-02-13 / /
    @Sanonz,仍然不行
  • @Ta / 2013-02-13 / /
    @anylove
    $insert_sql="insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id"")";
    试试
  • @Ta / 2013-02-13 / /
    @ anylove
     $insert_sql='insert into chatinfo(talk,time,name,uid)values("$talk","$time","$name","$user_id")';
  • @Ta / 2013-02-13 / /
    @Louis,""中的是常量,不是变量
  • @Ta / 2013-02-13 / /
    你用的sqlite么? 把'符号转换成其他的字符串 输出的时候再替换出来 当然替换的字符串不能太常用了
  • @Ta / 2013-02-13 / /
    你用的sqlite么? 把'符号转换成其他的字符串 输出的时候再替换出来 当然替换的字符串不能太常用了
  • @Ta / 2013-02-15 / /
    @anylove
    mysql使用mysql_real_escape_string函数 ,
    sqlite是sqlite_escape_string,
    pdo用pdo::quote或者预处理。
  • @Ta / 2013-02-15 / /
    @PGF_高峰,你也来看看。
  • @Ta / 2013-02-15 / /
    @,php5起魔术引号默认关闭(某些空间打开了,特别麻烦,得手动去除,所以虎绿林有0wap/sub/strip_quotes_gpc.sub.php)。php5.4已经废除了这个糟糕的功能。 所以,你必须自己转义数据。
  • @Ta / 2013-02-15 / /
    @anylove,在使用pdo的预处理时,你不需要转义标识符代替的参数的引号。在其他任何情况下,必须转义,否则就是赤果果的sql注入点。
  • @Ta / 2013-02-15 / /
    已经用转义的弄好了
添加新回复
回复需要登录