V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
yeyeye
V2EX  ›  问与答

PHP7 时代来临,操纵 MYSQL 您使用 mysqli 还是 PDO

  •  
  •   yeyeye · 2016-04-07 13:45:21 +08:00 · 8873 次点击
    这是一个创建于 3181 天前的主题,其中的信息可能已经有所发展或是发生改变。
    作为一个只开发自用小程序的人 面临 php7 的来临 其实是无奈的…… 因为不支持 mysql 连接方式了……(这里指的是 mysql mysqli pdo )

    那么 mysqli 和 pdo 该用哪个呢? 其实我想知道 mysql 下一个该拿哪个开刀了……
    13 条回复    2016-04-07 15:48:54 +08:00
    somnus
        1
    somnus  
       2016-04-07 13:51:42 +08:00   ❤️ 1
    pdo 啊,现在用 mysqli 的也不多了
    ovear
        2
    ovear  
       2016-04-07 13:53:21 +08:00   ❤️ 1
    pdo 做 databind 杜绝注入啊。。下一个开刀的就是 mysqli 咯~
    yeyeye
        3
    yeyeye  
    OP
       2016-04-07 14:02:53 +08:00
    @somnus

    主要自己用 所以也不知道别人用的什么 嘿嘿 谢谢!


    @ovear

    我是 asp 转过来的菜鸟 注入的问题其实不难解决吧?以前在 ASP 的方案是……
    1.字符串字段,转义单引号,转义换行符
    2.时间日期字段,判断字符串是否是日期格式。
    3.数字字段,判断变量是否为数字…

    没分析过 mysql 的注入案例 但是感觉这几点做到了 应该是一样吧……
    XianZaiZhuCe
        4
    XianZaiZhuCe  
       2016-04-07 14:06:38 +08:00 via iPhone   ❤️ 1
    最近还是 mysqli , 不过都是框架封装好的,对我来说没区别……
    a591826944
        5
    a591826944  
       2016-04-07 14:10:36 +08:00   ❤️ 1
    @yeyeye 这些防止注入的方式 还是太初级啊。。而且容错性不高啊。。。 pdo param bind 解决一切啊
    yeyeye
        6
    yeyeye  
    OP
       2016-04-07 14:24:02 +08:00
    @a591826944 这只是查询的时候用的方式,更新和插入的时候 ASP 从来都是绑定数据的(每条字段数据都是用数组变量存起来的)……我也是用 PHP 之后才用拼接字符串的,多几个字段插入 /更新一条记录,那叫一个蛋疼,眼花缭乱了都……


    @XianZaiZhuCe 我倒是也不介意用什么 因为使用量不大 就是考虑 PHP 有时候会切掉一些功能 所以就想不要踩坑了 现在重构一下还好 以后又要重构 就很烦了
    gamexg
        7
    gamexg  
       2016-04-07 15:22:48 +08:00   ❤️ 1
    @yeyeye 记得以前在乌云看到过宽字符、\0 等一些稀奇古怪的方式可以绕过单引号过滤。参数化查询是话最好的解决方案。
    ffwalle
        8
    ffwalle  
       2016-04-07 15:23:18 +08:00   ❤️ 1
    pdo
    cxbig
        9
    cxbig  
       2016-04-07 15:24:00 +08:00   ❤️ 1
    mysqli 早就该扔了
    FanError
        10
    FanError  
       2016-04-07 15:25:02 +08:00   ❤️ 1
    php5 时代就 pdo 了
    Jaylee
        11
    Jaylee  
       2016-04-07 15:27:31 +08:00   ❤️ 1
    建议 mysqli , 相比 pdo 性能更高,功能更强, 并且 prepare 之类的功能 mysqli 也有。
    skydiver
        12
    skydiver  
       2016-04-07 15:31:02 +08:00   ❤️ 1
    mysqli 性能更高,支持 mysql 的一些独有功能
    pdo 支持 client side prepared statement.
    看业务需求了
    xiaonianji
        13
    xiaonianji  
       2016-04-07 15:48:54 +08:00 via iPhone   ❤️ 1
    肯定 pdo 啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2954 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:08 · PVG 21:08 · LAX 05:08 · JFK 08:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.