PHPPDO与普通MySQL_CONNECT

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (35)

我是使用php pdo还是普通mysql?_用PHP连接执行数据库查询?

哪个更快?

PDO的最大好处之一是它的接口在多个数据库之间是一致的。对于准备好的语句,也有一些很酷的函数,这些函数消除了转义所有查询字符串的麻烦。PDO的可移植性大于MySQL。_连接。

因此,我是因为这些原因而使用PDO,还是坚持传统的mysql?_连接?

提问于
用户回答回答于

PDO比MySQL慢一点。但它具有很好的可移植性。PDO提供跨多个数据库的单一接口。这意味着可以使用多个DB而不需要使用mysql。_查询MySQL、MSSQL_查询MS、SQL等。只需始终使用类似$db->query(“插入到...”)之类的内容。不管使用的是什么DB驱动程序。

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

用户回答回答于

一些快速的时间显示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服务器位于另一个主机上的情况下。

扫码关注云+社区