PDO_MYSQL es un controlador que implementa la interfaz PHP Data Objects (PDO) para permitir el acceso desde PHP a las bases de datos MySQL. Al ejecutar una versión de PHP anterior a la 7.1.16, o PHP 7.2 anterior a la 7.2.4, configure el complemento de contraseña predeterminado del servidor MySQL 8 en mysql_native_password o, de lo contrario, verá errores similares a El servidor solicitó un método de autenticación desconocido para el cliente [caching_sha2_password] incluso cuando caching_sha2_password no se usa Esto se debe a que MySQL 8 tiene por defecto caching_sha2_password, un complemento que no es reconocido por las versiones anteriores de PHP (mysqlnd). En su lugar, cámbielo configurando . El complemento caching_sha2_password será compatible con una versión futura de PHP. Mientras tanto, la extensión mysql_xdevapi lo admite. Advertencia Atención: algunos tipos de tablas MySQL (motores de almacenamiento) no admiten transacciones. Al escribir código de base de datos transaccional utilizando un tipo de tabla que no admite transacciones, MySQL pretenderá que una transacción se inició con éxito. Además, cualquier consulta DDL emitida incluirá implícitamente cualquier transacción pendiente. El controlador MySQL no es compatible correctamente a través de PDOStatement::bindParam, mientras que dichos parámetros se pueden usar, no se actualizan (es decir, se ignora la salida real) Las distribuciones comunes de Unix incluyen versiones binarias de PHP que se pueden instalar. Aunque estas versiones binarias generalmente se crean con soporte para las extensiones de MySQL, es posible que las bibliotecas de extensión deban instalarse mediante un paquete adicional. Verifique la disponibilidad del administrador de paquetes que viene con la distribución elegida. Por ejemplo, en Ubuntu, el paquete instala las extensiones PHP ext/mysql, ext/mysqli y PDO_MYSQL. En CentOS, el paquete también instala estas tres extensiones de PHP. Alternativamente, puede compilar esta extensión usted mismo. Construir PHP desde la fuente le permite especificar las extensiones de MySQL que desea usar, así como su elección de biblioteca de cliente para cada extensión. Al compilar, use --with-pdo-mysql[=DIR] para instalar la extensión PDO MySQL, donde la opción es la biblioteca base de MySQL. Mysqlnd es la biblioteca predeterminada. Para obtener detalles sobre cómo elegir una biblioteca, consulte Elección de una biblioteca MySQL. Opcionalmente, --with-mysql-sock[=DIR] se establece en la ubicación del puntero de socket de MySQL unix para todas las extensiones de MySQL, incluido PDO_MYSQL. Si no se especifica, se buscan las ubicaciones predeterminadas. Opcionalmente, se usa --with-zlib-dir[=DIR] para establecer la ruta al prefijo de instalación de libz. La compatibilidad con SSL se habilita utilizando las constantes PDO_MySQL apropiadas, lo que equivale a llamar a la función mysql_ssl_set de la API C de MySQL. Además, SSL no se puede habilitar con PDO::setAttribute porque la conexión ya existe. Vea también la documentación de MySQL sobre ÃÂû conectarse a MySQL con SSL Las siguientes constantes están definidas por este controlador y solo estarán disponibles cuando la extensión se haya compilado en PHP o se haya cargado dinámicamente en tiempo de ejecución. Además, estas constantes específicas del controlador solo deben usarse si está utilizando este controlador. El uso de atributos específicos del controlador con otro controlador puede provocar un comportamiento inesperado. PDO::getAttribute() puede usarse para obtener el atributo para verificar el controlador, si su código puede ejecutarse contra múltiples controladores. en a , el controlador de MySQL utilizará las versiones almacenadas en búfer de la API de MySQL. Si está escribiendo código portátil, debe usar en su lugar. Si este atributo se establece en a, el controlador de MySQL utilizará las versiones almacenadas en búfer de la API de MySQL. Si está escribiendo código portátil, debe usar en su lugar. Ejemplo #1 Obligar a que las consultas se almacenen en búfer en mysql "mi aplicación solo funciona con mysql; debería usar \$stmt->fetchAll() en su lugar"Tenga en cuenta que esta constante solo se puede usar en la matriz cuando se construye un nuevo identificador de base de datos. Permite restringir la carga de DATOS LOCALES a archivos ubicados en este directorio designado. Disponible a partir de PHP 8.1.0. Tenga en cuenta que esta constante solo se puede usar en la matriz al construir un nuevo identificador de base de datos. Comando a ejecutar al conectarse al servidor MySQL. Se volverá a ejecutar automáticamente al volver a conectar. Tenga en cuenta que esta constante solo se puede usar en la matriz al construir un nuevo identificador de base de datos. Lea las opciones del archivo de opciones nombrado en lugar de las de . Esta opción no está disponible si se usa mysqlnd, porque mysqlnd no lee los archivos de configuración de mysql. Lea las opciones del grupo nombrado o del archivo especificado con . Esta opción no está disponible si se usa mysqlnd, porque mysqlnd no lee los archivos de configuración de mysql. Tamaño máximo de búfer. El valor predeterminado es 1 MiB. Esta constante no se admite cuando se compila contra mysqlnd. Devuelve el número de filas encontradas (coincidencias), no el número de filas modificadas. La ruta del archivo a la autoridad de certificación SSL. La ruta del archivo al directorio que contiene los certificados SSL CA de confianza, que se almacenan en formato PEM. La ruta del archivo al certificado SSL. Una lista de uno o más cifrados permitidos para usar en el cifrado SSL, en un formato que OpenSSL comprenda. Por ejemplo: la ruta del archivo a la clave SSL. Proporciona una forma de deshabilitar la verificación del certificado SSL del servidor. Esto existe a partir de PHP 7.0.18 y PHP 7.1.4. Deshabilita la ejecución de múltiples consultas en PDO::prepare() y PDO::query() cuando se establece en . Tenga en cuenta que esta constante solo se puede usar en la matriz al construir un nuevo identificador de base de datos El comportamiento de estas funciones se ve afectado por la configuración de . Para obtener más detalles y definiciones de los modos PHP_INI_*, consulte Para obtener más detalles y definiciones de los modos PHP_INI_*, consulte Dónde se puede establecer un ajuste de configuración Establece un socket de dominio Unix. Este valor se puede establecer en el momento de la compilación si se encuentra un socket de dominio en la configuración. Esta configuración ini es solo para Unix. Habilita la depuración para PDO_MYSQL. Esta configuración solo está disponible cuando PDO_MYSQL se compila contra mysqlnd y en modo de depuración de PDO.