Как узнать, является ли 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...
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.
может быть, проверить, если эти параметры? phpinfo () по какой-то причине отображает их иначе, чем другие настройки ini. Работает для 5.4, не уверен насчет 5.3.
ini_get('mysqlnd.debug') !== false
Comments