我把数据为 $url_pattern=":/(\/[\d]{6}\/t[\d]{8}_[\d]{7,}\.html)/i";
插入数据库中数据变为 "/(/[d]{6}/t[d]{8}_[d]{7,}.html)/i"
自动把反斜杠“\”都去掉了
我的网页格式为 :gb2312
 mysql库链接校对:UTF8_Unicode_ci(跟这个应该没关系吧)
我是哪里没有注意到还是什么设置错了

解决方案 »

  1.   

    SELECT ":/(\\/[\\d]{6}\\/t[\\d]{8}_[\\d]{7,}\\.html)/i",
      

  2.   

    正则是我从文本框输入的,用来匹配信息的,之后把正则在存到库中
    从文本框输入 "/(\/[\d]{6}\/t[\d]{8}_[\d]{7,}\.html)/i" 用post得到的是 "/(\\/[\\d]{6}\\/t[\\d]{8}_[\\d]{7,}\\.html)/i"
    我用stripslashes()函数把多余的反斜杠去掉了,可往数据库插入时,多出来的反斜杠又有用了可不可以用函数或其他方法把 "/(\/[\d]{6}\/t[\d]{8}_[\d]{7,}\.html)/i"格式再变为 (\\/[\\d]{6}\\/t[\\d]{8}_[\\d]{7,}\\.html)/i" 形式哈
      

  3.   

    用REPLACE试试
    replace("/(\/[\d]{6}\/t[\d]{8}_[\d]{7,}\.html)/i"格式再变为 (\\/[\\d]{6}\\/t[\\d]{8}_[\\d]{7,}\\.html)/i",'\','\\')
      

  4.   

    利用REPLACE函数把 \ 转成 \\
      

  5.   

    恩,谢谢,解决了
    用的addslashes()
    就是不知道会不会影响其他执行用replace也可以做到
      

  6.   

    在php里不要用这个函数,不然到后面你会后悔的
      

  7.   


    mysql> select '\\' as a;
    +---+
    | a |
    +---+
    | \ |
    +---+
    1 row in set (0.00 sec)mysql> select '\\\'' as a;
    +----+
    | a  |
    +----+
    | \' |
    +----+
    1 row in set (0.00 sec)
    需要用\转义。想用单引号也是。
      

  8.   


    没人理我
    是说我该好好学一下Mysql参考手册么
      

  9.   


    上面不是已经解释得很清楚了吗? \是MYSQL中的转义符,MYSQL会把它和后面紧跟的字符一起对待分析。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html