Manuel PHP
Précédent |  | Suivant

# XCVII. 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 prendra 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.

Avertissement
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.

# 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 à mysql avec le pilote de postgre 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` (integer)

  Si un attribut est fixé à `TRUE` sur une classe PDOStatement, le pilote MySQL utilisera les versions bufférisées de l'API MySQL. Si vous écrivez du code portable, vous devriez utiliser à la place PDOStatement::fetchAll().

  Exemple 1. Forçage des requêtes pour être bufférisées dans 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`.

`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.

`PDO::MYSQL_ATTR_READ_DEFAULT_FILE` (entier)

  Lit les options depuis le fichier nommé optionnel, plutôt que depuis `my.cnf`.

`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`.

`PDO::MYSQL_ATTR_MAX_BUFFER_SIZE` (entier)

  Taille maximale du tampon. Par défaut, vaut 1 MiB.

`PDO::MYSQL_ATTR_DIRECT_QUERY` (entier)

  Effectue des requêtes directes, sans utiliser de requêtes préparées.

Précédent | Sommaire | Suivant
mysql_unbuffered_query | Niveau supérieur | PDO_MYSQL DSN