Fonctions MySQL (PDO_MYSQL)MySQL (PDO)
&reftitle.intro;
PDO_MYSQL est un pilote qui implémente l'interface de PHP Data Objects (PDO) pour
autoriser l'accès de PHP aux bases de données MySQL.
PDO_MYSQL utilises des requêtes préparées émulées par défaut.
MySQL 8
Si PHP est utilisé dans une version 7.1 antérieure à la version 7.1.16, ou PHP 7.2 antérieure à 7.2.4,
le plugin de mot de passe doit être défini à
mysql_native_password pour MySQL 8 Server, car sinon des
erreurs similaires à The server requested authentication method
unknown to the client [caching_sha2_password] peuvent apparaitre,
même si caching_sha2_password n'est pas utilisé.
Ceci est dû au fait que MySQL 8 utilise par défaut caching_sha2_password,
un plugin qui n'est pas reconnu par les anciennes versions de PHP (mysqlnd).
À la place il faut modifier le paramètre
default_authentication_plugin=mysql_native_password dans
my.cnf. Le plugin caching_sha2_password
sera supporté dans une version future de PHP. En attendant, l'extension
mysql_xdevapi le supporte.
Prendre garde toutefois : certains types de tables MySQL (moteur d'enregistrement)
ne supportent pas les transactions. Lorsque vous écrivez du code de base
de données transactionnel en utilisant un type de table qui ne supporte
pas les transactions, MySQL prétendra qu'une transaction était initiée
correctement. De plus, toute requête DLL publiée enverra implicitement
l'ensemble des transactions en attente.
Le pilote MySQL ne supporte pas proprement PDO::PARAM_INPUT_OUTPUT
via PDOStatement::bindParam; tandis que de tel
paramètres peuvent être utilisé, il ne seront pas mis à jour
(c.à.d. la sortie actuel est ignoré).
&reference.pdo-mysql.configure;
&reference.pdo-mysql.constants;
&reference.pdo-mysql.ini;
PDO_MYSQL DSNConnexion aux bases de données MySQL
&reftitle.description;
Le Data Source Name (DSN) de PDO_MYSQL est composé des éléments suivants :
Préfixe DSN
Le préfixe DSN est mysql:.
host
L'hôte sur lequel le serveur de base de données se situe.
port
Le numéro de port où le serveur de base de données est en train
d'écouter.
dbname
Le nom de la base de données.
unix_socket
Le socket Unix MySQL (ne devrait pas être utilisé avec
host ou port).
charset
Le jeu de caractères. Voir la documentation sur les concepts
des jeux de caractères
pour plus d'informations.
&reftitle.examples;
Exemples avec le DSN de PDO_MYSQL
L'exemple suivant montre le DSN PDO_MYSQL pour se connecter aux bases
de données MySQL :
Exemples plus complets :
&reftitle.notes;
Unix seulement:
Lorsque le nom d'hôte est "localhost", la connexion est faite par un socket
Unix. Si PDO_MYSQL est compilé avec libmysqlclient, alors le fichier de socket est celui précisé à la
compilation de libmysqlclient. Si PDO_MYSQL est compilé avec mysqlnd, un socket par défaut peut être
indiqué via la paramètre pdo_mysql.default_socket.