Как узнать, является ли MySQLnd активным драйвером?



может быть, это очевидный вопрос, но я хочу быть уверен.



Как я могу знать, если это MySQLnd является активным драйвером?



Я запускаю PHP 5.3 и MySQL 5.1.37.
В phpinfo() mysqlnd указан, но только с этим я не могу быть уверен, использую ли я MySQLnd или старый драйвер...



извлечение вывода phpinfo ()



mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $

mysqli
MysqlI Support enabled
Client API library version mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 26

mysqlnd
mysqlnd enabled
Version mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $

PDO
PDO support enabled
PDO drivers mysql

pdo_mysql
PDO Driver for MySQL enabled
Client API version mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $


Я использую PDO, и драйвер PDO говорит mysql...

548   5  

5 ответов:

Это должно сделать трюк:

<?php
$mysqlnd = function_exists('mysqli_fetch_all');

if ($mysqlnd) {
    echo 'mysqlnd enabled!';
}

чтобы определить, является ли его активным драйвером PDO, создайте свой объект MySQL PDO затем:

if (strpos($pdo->getAttribute(PDO::ATTR_CLIENT_VERSION), 'mysqlnd') !== false) {
    echo 'PDO MySQLnd enabled!';
}

проверка mysqli_fetch_all на самом деле не описывает, используете ли вы mysqlnd. Скорее, он говорит, что у вас есть расширением mysqli включено.

MySQLi-это просто обновленная версия mysql расширение, которое было предоставлено в более ранних версиях PHP.

The и PDO MySQL driver может ли каждый из них быть индивидуально настроен для использования либо libmysqlclient или mysqlnd

этот код:

<?php
$mysqlnd = function_exists('mysqli_fetch_all');

if ($mysqlnd) {
    echo 'mysqlnd enabled!';
}

не Эхо ничего не говорит о том, что у вас нет mysqli скомпилирован/включен/установлен, и может использоваться более старый

драйвер (libmysql или mysqlnd) выбирается во время компиляции, и каждый из этих двух может быть указан независимо для mysql, mysqli и pdo_mysql.

вот три параметра настройки, которые соответствуют mysqlnd:

  --with-mysql[=DIR]      Include MySQL support.  DIR is the MySQL base
                          directory.  If mysqlnd is passed as DIR,
                          the MySQL native driver will be used [/usr/local]
  --with-mysqli[=FILE]    Include MySQLi support.  FILE is the path
                          to mysql_config.  If mysqlnd is passed as FILE,
                          the MySQL native driver will be used [mysql_config]
  --with-pdo-mysql[=DIR]    PDO: MySQL support. DIR is the MySQL base directoy
                                 If mysqlnd is passed as DIR, the MySQL native
                                 native driver will be used [/usr/local]


В вашем случае " версия API клиента "-это" mysqlnd 5.0.5-dev " для mysql, mysqli и pdo_mysql.

Так что, похоже, вы используете mysqlnd в любом из трех случаев.

в случае PDO, вы установите драйвер MySQL - и он скомпилирован на основе mysqlnd.

Это то, что я искал

<?php
if (extension_loaded('mysqlnd')) {
}
?>

Comments

    Ничего не найдено.