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

为什么网上教程 书上教程用的都是 mysql_connect()这一类的函数,我自己写却提示推荐使用 mysqli_connect()这种

  •  
  •   chineselittleboy · 2015-01-25 09:57:14 +08:00 via Android · 4013 次点击
    这是一个创建于 3378 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我在win7 64bit装的wamp server
    21 条回复    2015-01-26 14:26:52 +08:00
    heqichang
        1
    heqichang  
       2015-01-25 09:59:54 +08:00
    你的教程太老了
    chchwy
        2
    chchwy  
       2015-01-25 10:02:04 +08:00
    mysql_connect() 太老舊,的確該廢棄了.

    現在推薦用 mysqli_connect() 或 PDO
    anubiskong
        3
    anubiskong  
       2015-01-25 10:22:34 +08:00
    可见PHP多SB
    kongkongyzt
        4
    kongkongyzt  
       2015-01-25 10:28:40 +08:00 via Android
    你的教程太老了
    除非是为了兼容,否则都是推荐使用mysqli
    Actrace
        5
    Actrace  
       2015-01-25 10:43:53 +08:00
    mysql_connect可能无法向更高版本的mysql服务器兼容.
    Dannytmp
        6
    Dannytmp  
       2015-01-25 10:43:56 +08:00
    看教程的时候先看下时间戳,挑最近的来看,或者直接在官网学
    chineselittleboy
        7
    chineselittleboy  
    OP
       2015-01-25 11:00:16 +08:00 via Android
    @heqichang 教程是2014年的〒_〒
    chineselittleboy
        8
    chineselittleboy  
    OP
       2015-01-25 11:00:42 +08:00 via Android
    Jaylee
        9
    Jaylee  
       2015-01-25 11:38:31 +08:00
    从php5.3开始,如果使用mysql_*系统的函数会报一个departed错误,建议使用mysqli或者pdo
    skybr
        10
    skybr  
       2015-01-25 11:39:44 +08:00
    mysqli更不该用, 本身就是mysql到pdo时期的过度产物, 你该用pdo的.
    chineselittleboy
        11
    chineselittleboy  
    OP
       2015-01-25 11:45:19 +08:00 via Android
    @skybr 受教了~
    chineselittleboy
        12
    chineselittleboy  
    OP
       2015-01-25 11:48:04 +08:00 via Android
    @Jaylee 技术更新的好快〒_〒
    dryyun
        13
    dryyun  
       2015-01-25 11:55:08 +08:00
    书都过时了。推荐使用pdo
    skybr
        14
    skybr  
       2015-01-25 12:01:52 +08:00
    @chineselittleboy 不是技术更新快, 你看的东西太老, php建议用mysqli取代mysql, 之后又把pdo从pecl移到标准库成为官方建议的事实标准是十年前的事.
    Jaylee
        15
    Jaylee  
       2015-01-25 12:22:33 +08:00
    @skybr pdo为了方便切换数据库,提供了一个统一的数据访问对象,例如从mysql切换到oracle,如果你没有这个需求,就应该用msyqli,mysqli提供的接口功能也更加丰富,性能相比pdo更高,不知道你从哪里得出结论不该用mysqli而是pdo的
    skybr
        16
    skybr  
       2015-01-25 12:44:13 +08:00   ❤️ 1
    @Jaylee

    这问题实在没办法回答了, 因为经历过的都知道, 时处php4和php5演化时期,当时php官方灵光一现, 终于意识自己自作聪明搞个magic_quotes_gpc自动给数据addslashes让用户拼接数据库是多么傻逼的一件事(当时菜鸟php程序员干的最多的事就是觉得php多照顾程序员, 给参数自动转义, 嘲笑asp容易注入, 而正常的php程序员干的最多的则是一边骂php, 一边是判断gpc, 如果默认转义, 就把参数都stripslashes避免源数据被破坏, 等到了mysql_xxx里再addslashes), 于是终于干了点正常人该干的事, 就是匆忙上了带参数绑定的临时产物mysqli去替代php原先的mysql系列, 这个一开始的定位就是临时产物, 因为pdo在pecl里, 当时的成熟度还不适合合并进标准库, 由于是php4到php5的演化时期, 还带了当时的特色, 就是提供函数和对象两套调用入口, 函数入口兼容mysql系列, 对象入口为pdo铺路 , 而PDO系列才是正儿八经先进pecl再进standard慢慢打磨出来的, 至于切换数据库方便从哪里说起? 几个SQL数据库语法又不是通用的, 只是学java的jdbc和python的dbapi提供一个一致入口而已.
    chineselittleboy
        17
    chineselittleboy  
    OP
       2015-01-25 13:51:09 +08:00
    @skybr 不是做广告 我看的是imooc上面的教程 都是新的教程
    belin520
        18
    belin520  
       2015-01-25 13:54:22 +08:00
    PDO
    msg7086
        19
    msg7086  
       2015-01-25 13:54:31 +08:00
    @Jaylee : deprecated

    &+@skybr :

    嘛历史原因实在是……
    至于现在我是觉得用 mysqli 稍微要更舒服一点,虽然我之前一直是 mysqlnd+ADODB 来开发的。
    rangercyh
        20
    rangercyh  
       2015-01-26 08:48:21 +08:00
    这是告诉你理想和现实的差异,教条主义和实践主义的冲突 :)
    chineselittleboy
        21
    chineselittleboy  
    OP
       2015-01-26 14:26:52 +08:00
    @rangercyh 郁闷死了。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3336 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:10 · PVG 20:10 · LAX 05:10 · JFK 08:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.