para instalar extension descargar php mysql mysqlnd

php - instalar - ¿Cómo saber si MySQLnd es el driver activo?



mysqlnd install (5)

El controlador (libmysql o mysqlnd) se elige en tiempo de compilación, y cada uno de esos dos se puede especificar de forma independiente para mysql, mysqli y pdo_mysql.

Aquí están las tres opciones de configuración que corresponden a 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]


En su caso, la "versión de la API del cliente" es "mysqlnd 5.0.5-dev" para mysql, mysqli y pdo_mysql.

Así que parece que estás usando mysqlnd en cualquiera de los tres casos.

En el caso de PDO, tiene instalado el controlador MySQL, y ese se compila basado en mysqlnd.

Tal vez sea una pregunta obvia, pero quiero estar seguro.

¿Cómo puedo saber si MySQLnd es el controlador activo?

Estoy ejecutando PHP 5.3 y MySQL 5.1.37. En phpinfo () mysqlnd aparece en la lista pero solo con esto no puedo estar seguro de si uso MySQLnd o el controlador antiguo ...

Extracto de salida de 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 $

Estoy usando PDO, y el controlador PDO dice mysql ...


Esto debería funcionar:

<?php $mysqlnd = function_exists(''mysqli_fetch_all''); if ($mysqlnd) { echo ''mysqlnd enabled!''; }

Para detectar si es el controlador PDO activo, cree su objeto MySQL PDO y luego:

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


Esto es lo que estaba buscando

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


La comprobación de mysqli_fetch_all no describe realmente si está utilizando mysqlnd . Más bien, dice que tienes habilitada la extensión mysqli .

MySQLi es simplemente una versión actualizada de la extensión mysql que se proporcionó en versiones anteriores de PHP.

La extensión mysql , la extensión mysqli y el PDO MySQL driver pueden configurarse individualmente para usar libmysqlclient o mysqlnd

Este codigo

<?php $mysqlnd = function_exists(''mysqli_fetch_all''); if ($mysqlnd) { echo ''mysqlnd enabled!''; }

no hacer eco de nada sugiere que no tiene mysqli compilado / habilitado / instalado, y podría estar usando la extensión de mysql anterior.

Una mejor manera de verificar mysqli con mysqlnd vs mysql con libmysqlclient es hacer esto:

<?php if (function_exists(''mysql_connect'')) { echo "- MySQL <b>is installed</b>.<br>"; } else { echo "- MySQL <b>is not</b> installed.<br>"; } if (function_exists(''mysqli_connect'')) { echo "- MySQLi <b>is installed</b>.<br>"; } else { echo "- MySQLi <b>is not installed</b>.<br>"; } if (function_exists(''mysqli_get_client_stats'')) { echo "- MySQLnd driver is being used.<br>"; } else { echo "- libmysqlclient driver is being used.<br>"; }

Esto funciona porque mysqlnd proporciona tres funciones adicionales que funcionan solo cuando mysqlnd se usa como controlador .

Finalmente, la verificación de PDO debe tener la variable $pdo definida primero.

$dbHost = "localhost"; $dbUser = "root"; $dbPass = "password"; $dbName = "database"; $pdo = new PDO(''mysql:host=''.$dbHost.'';dbname=''.$dbName, $dbUser, $dbPass); if (strpos($pdo->getAttribute(PDO::ATTR_CLIENT_VERSION), ''mysqlnd'') !== false) { echo ''- PDO MySQLnd <b>is enabled</b>.<br>''; } else { echo ''- PDO MySQLnd <b>is not enabled</b>.<br>''; } ?>


Tal vez comprobar si existen estos ajustes ? phpinfo () los reproduce de forma diferente a otras configuraciones ini por alguna razón. Trabaja para 5.4, no estoy seguro de 5.3.

ini_get(''mysqlnd.debug'') !== false