首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP与普通mysql_connect

PHP与普通mysql_connect
EN

Stack Overflow用户
提问于 2009-09-09 20:52:06
回答 6查看 47.6K关注 0票数 46

我应该使用PHP还是普通的mysql_connect在php中执行数据库查询?

哪一个更快?

PDO的最大好处之一是界面在多个数据库中是一致的。对于准备好的语句也有一些很酷的函数,可以省去转义所有查询字符串的一些麻烦。与mysql_connect相比,PDO具有更好的可移植性。

那么,我是应该因为这些原因而使用PDO,还是应该坚持使用传统的mysql_connect呢?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-09-09 21:05:06

PDO比mysql_*慢一点,但它有很好的可移植性。PDO提供跨多个数据库的单一接口。这意味着你可以使用多个数据库,而不需要为mysql使用mysql_query,为MS sql使用mssql_query等。一直都是。无论您使用的是哪种DB驱动程序。

因此,对于较大或可移植的项目,PDO更可取。甚至zend框架也使用PDO。

票数 41
EN

Stack Overflow用户

发布于 2009-09-09 20:55:21

一些快速计时表明PDO在连接时稍微快一些。

$start = microtime(true);
for($i=0; $i<10000; ++$i) {

    try {
        $db = new PDO($dsn, $user, $password);
    } catch (PDOException $e) {
        echo 'Connection failed: ' . $e->getMessage()."\n";
    }
    $db = null;
}

$pdotime = microtime(true) - $start;
echo "PDO time: ".$pdotime."\n";

$start = microtime(true);
for($i=0; $i<10000; ++$i) {
    $db = mysql_connect($host, $user, $password);
    if(!$db) {
        echo "Connection failed\n";
    }
    if(!mysql_select_db($schema, $db)) {
        echo "Error: ".mysql_error()."\n";
    }
    mysql_close($db);
}

$rawtime = microtime(true) - $start;
echo "Raw time: ".$rawtime."\n";

产生的结果如下

PDO time: 0.77983117103577
Raw time: 0.8918719291687

PDO time: 0.7866849899292
Raw time: 0.8954758644104

PDO time: 0.77420806884766
Raw time: 0.90708494186401

PDO time: 0.77484893798828
Raw time: 0.90069103240967

无论如何,速度差异都是微不足道的;建立网络连接可能比PDO产生的任何开销要长得多,特别是当mysql服务器在另一台主机上时。

您自己提到了使用PDO的所有理由。实际上,千万不要直接使用mysql_*函数,无论是使用PDO,还是使用some other library

票数 17
EN

Stack Overflow用户

发布于 2009-09-09 21:05:38

我通常会推荐使用PDO,除非有特定的原因,你不能。如果两者之间没有小的区别,并且您没有理由不使用PDO,那么我相信在您的应用程序中使用DB抽象的实践会比仅仅因为它存在而使用mysql_*更好。我会说让最佳实践取胜。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1402017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档