PDO_MYSQL est un pilote qui implémente l'interface PHP Data Objects (PDO) pour permettre l'accès de PHP aux bases de données MySQL. Lorsque vous exécutez une version PHP antérieure à 7.1.16 ou PHP 7.2 antérieure à 7.2.4, définissez le plug-in de mot de passe par défaut du serveur MySQL 8 sur mysql_native_password, sinon vous verrez des erreurs similaires à Le serveur a demandé une méthode d'authentification inconnue du client [caching_sha2_password] même lorsque caching_sha2_password N'est pas utilisé. En effet, MySQL 8 utilise par défaut caching_sha2_password, un plugin qui n'est pas reconnu par les anciennes versions de PHP (mysqlnd). Au lieu de cela, modifiez-le en définissant dans . Le plug-in caching_sha2_password sera pris en charge dans une future version de PHP. En attendant, l'extension mysql_xdevapi le supporte. Avertissement Attention : Certains types de tables MySQL (moteurs de stockage) ne prennent pas en charge les transactions. Lors de l'écriture de code de base de données transactionnelle à l'aide d'un type de table qui ne prend pas en charge les transactions, MySQL prétendra qu'une transaction a été lancée avec succès. De plus, toutes les requêtes DDL émises impliqueront implicitement toutes les transactions en attente. Le pilote MySQL ne prend pas correctement en charge via PDOStatement :: bindParam alors que de tels paramètres peuvent être utilisés, ils ne sont pas mis à jour (c'est-à-dire que la sortie réelle est ignorée) Les distributions Unix courantes incluent des versions binaires de PHP qui peuvent être installées. Bien que ces versions binaires soient généralement construites avec la prise en charge des extensions MySQL, les bibliothèques d'extension elles-mêmes peuvent devoir être installées à l'aide d'un package supplémentaire. Vérifiez la disponibilité du gestionnaire de packages fourni avec la distribution que vous avez choisie. Par exemple, sur Ubuntu, le package installe les extensions PHP ext/mysql, ext/mysqli et PDO_MYSQL. Sur CentOS, le package installe également ces trois extensions PHP. Alternativement, vous pouvez compiler cette extension vous-même. Construire PHP à partir des sources vous permet de spécifier les extensions MySQL que vous souhaitez utiliser, ainsi que votre choix de bibliothèque client pour chaque extension. Lors de la compilation, utilisez --with-pdo-mysql[=DIR] pour installer l'extension PDO MySQL, où l'option est la bibliothèque de base MySQL. Mysqlnd est la bibliothèque par défaut. Pour plus de détails sur le choix d'une bibliothèque, consultez Choisir une bibliothèque MySQL. Facultativement, le --with-mysql-sock[=DIR] définit l'emplacement sur le pointeur de socket MySQL unix pour toutes les extensions MySQL, y compris PDO_MYSQL. S'il n'est pas spécifié, les emplacements par défaut sont recherchés. Facultativement, --with-zlib-dir[=DIR] est utilisé pour définir le chemin vers le préfixe d'installation de libz. La prise en charge de SSL est activée à l'aide des constantes PDO_MySQL appropriées, ce qui équivaut à appeler la fonction de l'API MySQL C mysql_ssl_set De plus, SSL ne peut pas être activé avec PDO::setAttribute car la connexion existe déjà. Voir aussi la documentation MySQL sur la connexion à MySQL avec SSL Les constantes ci-dessous sont définies par ce pilote et ne seront disponibles que lorsque l'extension aura été compilée en PHP ou chargée dynamiquement au moment de l'exécution. De plus, ces constantes spécifiques au pilote ne doivent être utilisées que si vous utilisez ce pilote. L'utilisation d'attributs spécifiques au pilote avec un autre pilote peut entraîner un comportement inattendu. PDO::getAttribute() peut être utilisé pour obtenir l'attribut permettant de vérifier le pilote, si votre code peut s'exécuter sur plusieurs pilotes. sur un , le pilote MySQL utilisera les versions tamponnées de l'API MySQL. Si vous écrivez du code portable, vous devriez utiliser à la place. Si cet attribut est défini sur a, le pilote MySQL utilisera les versions tamponnées de l'API MySQL. Si vous écrivez du code portable, vous devriez utiliser à la place. Exemple #1 Forcer les requêtes à être tamponnées dans mysql "mon application ne fonctionne qu'avec mysql; je devrais utiliser \$stmt->fetchAll() à la place"Notez que cette constante ne peut être utilisée que dans le tableau lors de la construction d'un nouveau handle de base de données. Permet de limiter le chargement des DONNÉES LOCALES aux fichiers situés dans ce répertoire désigné. Disponible à partir de PHP 8.1.0. Notez que cette constante ne peut être utilisée dans le tableau que lors de la construction d'un nouveau handle de base de données. Commande à exécuter lors de la connexion au serveur MySQL. Sera automatiquement ré-exécuté lors de la reconnexion. Notez que cette constante ne peut être utilisée dans le tableau que lors de la construction d'un nouveau handle de base de données. Lire les options à partir du fichier d'options nommé au lieu de partir de . Cette option n'est pas disponible si mysqlnd est utilisé, car mysqlnd ne lit pas les fichiers de configuration mysql. Lit les options du groupe nommé à partir du ou du fichier spécifié avec . Cette option n'est pas disponible si mysqlnd est utilisé, car mysqlnd ne lit pas les fichiers de configuration mysql. Taille maximale de la mémoire tampon. La valeur par défaut est 1 Mio. Cette constante n'est pas prise en charge lorsqu'elle est compilée avec mysqlnd. Renvoie le nombre de lignes trouvées (correspondantes), et non le nombre de lignes modifiées. Le chemin d'accès au fichier vers l'autorité de certification SSL. Le chemin d'accès au répertoire qui contient les certificats SSL CA de confiance, qui sont stockés au format PEM. Le chemin d'accès au fichier du certificat SSL. Une liste d'un ou plusieurs chiffrements autorisés à utiliser pour le chiffrement SSL, dans un format compris par OpenSSL. Par exemple : Le chemin d'accès au fichier de la clé SSL. Fournit un moyen de désactiver la vérification du certificat SSL du serveur. Cela existe depuis PHP 7.0.18 et PHP 7.1.4. Désactive l'exécution de plusieurs requêtes dans PDO::prepare() et PDO::query() lorsqu'il est défini sur . Notez que cette constante ne peut être utilisée dans le tableau que lors de la construction d'un nouveau handle de base de données Le comportement de ces fonctions est affecté par les paramètres de . Pour plus de détails et de définitions des modes PHP_INI_*, consultez le Pour plus de détails et de définitions des modes PHP_INI_*, consultez Où un paramètre de configuration peut être défini Définit un socket de domaine Unix. Cette valeur peut être définie au moment de la compilation si un socket de domaine est trouvé lors de la configuration. Ce paramètre ini est uniquement Unix. Active le débogage pour PDO_MYSQL. Ce paramètre n'est disponible que lorsque PDO_MYSQL est compilé avec mysqlnd et en mode de débogage PDO.