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.
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.
Exemple #3 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");
}
?>
Active LOAD LOCAL INFILE.
Commande à exécuter lors de la connexion au serveur MySQL. Sera automatiquement ré-exécuté lors d'une reconnexion.
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.
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.
Taille maximale du tampon. Par défaut, vaut 1 MiB. Cette constante n'est pas supportée lorsque mysqlnd est utilisé.
Effectue des requêtes directes, sans utiliser de requêtes préparées.
Retourne le nombre d'enregistrements trouvés, pas le nombre d'enregistrements changés.
Autorise les espaces après les noms de fonctions. Fait en sorte que les noms de fonctions soient des mots réservés.
Active la compression de la communication réseau. Non supporté si mysqlnd est utilisé.
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Name | Default | Changeable |
---|---|---|
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.
Sets a Unix domain socket. This value can either be set at compile time if a domain socket is found at configure. This ini setting is Unix only.
Enables debugging for PDO_MYSQL. This setting is only available when PDO_MYSQL is compiled against mysqlnd and in PDO debug mode.