V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
outlaws
V2EX  ›  PHP

laravel 如何处理 sql 转义

  •  
  •   outlaws · 2016-05-12 10:32:40 +08:00 · 3768 次点击
    这是一个创建于 3136 天前的主题,其中的信息可能已经有所发展或是发生改变。
    写代码时发现一条 sql 执行不正常,其中一个 where 条件中的反斜杠被当成了转义符,在 laravel 中如何忽略转义执行 sql.
    6 条回复    2016-05-12 11:30:58 +08:00
    xujif
        1
    xujif  
       2016-05-12 10:37:48 +08:00
    DB::raw
    b821025551b
        2
    b821025551b  
       2016-05-12 10:45:10 +08:00
    这不是 laravel 的问题吧,可以试着把一个反斜杠替换成两个反斜杠.
    reticentfat
        3
    reticentfat  
       2016-05-12 10:58:51 +08:00
    加一条反斜杠
    shishirui
        4
    shishirui  
       2016-05-12 11:01:11 +08:00
    加一条反斜杠
    outlaws
        5
    outlaws  
    OP
       2016-05-12 11:10:22 +08:00
    @b821025551b
    @reticentfat
    因为最开始拿到项目的时候权限模块是直接将 laravel 的命名空间以字符串形式保存在数据库里的,所以在做权限判断的时候因为这个反斜杠的问题非常尴尬,除了批量替换数据之外有其他的办法可以处理吗,比如 laravel 是否有忽略字符串忽略转义的方法
    void1900
        6
    void1900  
       2016-05-12 11:30:58 +08:00
    据我所知 \ 并不影响查询,你的反斜杠真的是被 laravel 转义了吗?

    你可以在 sql 中加入 sleep(10) 然后在 mysql 中只想 show full processlsit; 查看实际执行的 sql 是什么
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   887 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.