Fonctions MySQL (PDO_MYSQL)
Introduction
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 de MySQL 3.x, 4.x. et 5.x.
PDO_MYSQL tirera avantage des requêtes natives préparées présentes dans MySQL 4.1 et supérieur. Si vous utilisez une version plus ancienne des bibliothèques clientes mysql, PDO les émulera pour vous.
Prenez garde : 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, toutes requêtes DLL publiées enverra implicitement toutes les transactions en attente.
Installation
Utilisez l'option de compilation --with-pdo-mysql[=DIR] pour installer l'extension PDO MySQL, où [=DIR] (optionnel) représente le chemin vers le dossier d'installation de base de MySQL. Si mysqlnd est passé comme [=DIR], alors le driver natif MySQL sera utilisé.
Optionnellement, l'option --with-mysql-sock[=DIR] définit le chemin vers le socket Unix MySQL pour toutes les extensions MySQL, y compris PDO_MYSQL. Si non spécifié, les chemins par défaut seront utilisés.
Optionnellement, l'option --with-zlib-dir[=DIR] sera utilisé pour définir le préfixe d'installation libz.
$ ./configure --with-pdo-mysql --with-mysql-sock=/var/mysql/mysql.sock
Le support SSL est activé en utilisant les constantes PDO_MySQL appropriées, ce qui revient à appeler la fonction » mysql_ssl_set() de l'API C MySQL. De plus, SSL ne peut être activé avec PDO::setAttribute car la connexion existe déjà. Reportez-vous à la documentation MySQL sur » la connexion sur MySQL en utilisant SSL.
Version | Description |
---|---|
5.4.0 | Les bibliothèques cliente MySQL 4.1 et inférieures ne sont plus supportées. |
5.3.9 | Ajout du support SSL avec mysqlnd et OpenSSL. |
5.3.7 | Ajout du support SSL avec libmysqlclient et OpenSSL. |
Constantes pré-définies
Les constantes ci-dessous sont
définies par ce pilote et seront seulement disponibles lorsque l'extension
aura été compilée dans PHP ou chargée dynamiquement du moteur d'exécution.
De plus, ces constantes spécifiques au pilote devraient être utilisées seulement
si vous utilisez ce pilote. En utilisant les attributs spécifiques à un pilote
avec un autre pilote pourrait causer un comportement inattendu.
PDO::getAttribute() pourrait être utilisé pour obtenir
l'attribut PDO::ATTR_DRIVER_NAME
pour vérifier le
pilote, si votre code peut fonctionner sur des pilotes multiples.
-
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
(entier) -
Si cet attribut est fixé à TRUE sur un objet de classe
PDOStatement, le pilote MySQL
utilisera les versions bufferisées de l'API MySQL.
Si vous écrivez du code portable, vous devriez utiliser à la place
PDOStatement::fetchAll().
Exemple #1 Forcer la bufferisation des requêtes avec mysql
<?php
if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
$stmt = $db->prepare('select * from foo',
array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
} else {
die("mon application fonctionne seulement avec mysql; Je devrais utiliser \$stmt->fetchAll() à la place");
}
?> -
PDO::MYSQL_ATTR_LOCAL_INFILE
(entier) -
Active LOAD LOCAL INFILE.
Notez que cette option n'a d'effet que si utilisée dans le tableau d'options
driver_options
du constructeur. -
PDO::MYSQL_ATTR_INIT_COMMAND
(entier) -
Commande à exécuter lors de la connexion au serveur MySQL. Sera automatiquement ré-exécuté lors d'une reconnexion.
Notez que cette option n'a d'effet que si utilisée dans le tableau d'options
driver_options
du constructeur. -
PDO::MYSQL_ATTR_READ_DEFAULT_FILE
(entier) -
Lit les options depuis le fichier nommé optionnel, plutôt que depuis my.cnf. Cette option n'est pas disponible lors de l'utilisation de mysqlnd car ce dernier ne lit pas les fichiers de configuration de mysql.
-
PDO::MYSQL_ATTR_READ_DEFAULT_GROUP
(entier) -
Lit les options depuis le groupe nommé du fichier my.cnf ou depuis le fichier spécifié par
MYSQL_READ_DEFAULT_FILE
. Cette option n'est pas disponible lors de l'utilisation de mysqlnd car ce dernier ne lit pas les fichiers de configuration de mysql. -
PDO::MYSQL_ATTR_MAX_BUFFER_SIZE
(entier) -
Taille maximale du tampon. Par défaut, vaut 1 MiB. Cette constante n'est pas supportée lorsque mysqlnd est utilisé.
-
PDO::MYSQL_ATTR_DIRECT_QUERY
(entier) -
Effectue des requêtes directes, sans utiliser de requêtes préparées.
-
PDO::MYSQL_ATTR_FOUND_ROWS
(entier) -
Retourne le nombre d'enregistrements trouvés, pas le nombre d'enregistrements changés.
-
PDO::MYSQL_ATTR_IGNORE_SPACE
(entier) -
Autorise les espaces après les noms de fonctions. Fait en sorte que les noms de fonctions soient des mots réservés.
-
PDO::MYSQL_ATTR_COMPRESS
(entier) -
Active la compression de la communication réseau. Supporté si mysqlnd est utilisé à partir de PHP 5.3.11.
-
PDO::MYSQL_ATTR_SSL_CA
(entier) -
Chemin vers l'authorité certificat SSL.
Existe depuis PHP 5.3.7.
-
PDO::MYSQL_ATTR_SSL_CAPATH
(entier) -
Chemin vers le dossier contenant les certificats SSL CA, stockés au format PEM.
Existe depuis PHP 5.3.7.
-
PDO::MYSQL_ATTR_SSL_CERT
(entier) -
Chemin vers le certificat SSL.
Existe depuis PHP 5.3.7.
-
PDO::MYSQL_ATTR_SSL_CIPHER
(entier) -
Liste d'un ou plusieurs ciphers pour utiliser lors du cryptage SSL, dans un format reconnu par OpenSSL. Par exemple: DHE-RSA-AES256-SHA:AES128-SHA
Existe depuis PHP 5.3.7.
-
PDO::MYSQL_ATTR_SSL_KEY
(entier) -
Chemin vers la clé SSL.
Existe depuis PHP 5.3.7.
Configuration à l'exécution
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Nom | Défaut | Modifiable |
---|---|---|
pdo_mysql.default_socket | "/tmp/mysql.sock" | PHP_INI_SYSTEM |
pdo_mysql.debug | NULL | PHP_INI_SYSTEM |
Voici un éclaircissement sur l'utilisation des directives de configuration.
-
pdo_mysql.default_socket
string -
Définit un socket de domaine Unix. La valeur peut aussi être définie au moment de la compilation si un socket de domaine Unix est trouvé lors de la configuration. Cette configuration INI n'est disponible que sous Unix.
-
pdo_mysql.debug
boolean -
Active le débogage pour le driver PDO_MYSQL. Cette configuration n'est disponible que lorsque le driver PDO_MYSQL est compilé avec mysqlnd et en mode de débogage PDO.
Sommaire
- PDO_MYSQL DSN — Connexion aux bases de données MySQL
Version en cache
21/11/2024 15:17:03 Cette version de la page est en cache (à la date du 21/11/2024 15:17:03) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-ref.pdo-mysql.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.