Fonctions MySQL
PHP Manual

mysql_unbuffered_query

(PHP 4 >= 4.0.6, PHP 5)

mysql_unbuffered_query Exécute une requête SQL sans mobiliser les résultats MySQL

Description

resource mysql_unbuffered_query ( string $query [, resource $link_identifier = NULL ] )

mysql_unbuffered_query() envoie la requête SQL query à MySQL sans automatiquement récupérer et mettre en mémoire les lignes du résultat, comme pourrait le faire la fonction mysql_query(). Ce comportement permet d'épargner une grande quantité de mémoire lorsque les requêtes SQL produisent un gros jeu de résultats, et vous pouvez commencer à travailler sur le jeu de résultats immédiatement après que la première ligne ait été récupérée que vous n'avez pas à attendre la fin du traitement de la requête SQL. Pour utiliser la fonction mysql_unbuffered_query() lorsque plusieurs connexions à des bases de données sont ouvertes, vous devez spécifier le paramètre optionnel link_identifier pour identifier la connexion à utiliser.

Liste de paramètres

query

La requête SQL à exécuter

Les données de la requête doivent être proprement échappées.

link_identifier

La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.

Valeurs de retour

Pour les requêtes SELECT, SHOW, DESCRIBE ou EXPLAIN, mysql_unbuffered_query() retourne une ressource en cas de succès, ou FALSE si une erreur survient.

Pour les autres types de requêtes, UPDATE, DELETE, DROP, etc, mysql_unbuffered_query() retourne TRUE en cas de succès ou FALSE si une erreur survient.

Notes

Note:

L'intérêt de mysql_unbuffered_query() est tempéré par une limitation : mysql_num_rows() et mysql_data_seek() ne fonctionnent pas sur une ressource retournée par mysql_unbuffered_query(), tant que toutes les lignes sont récupérées. Vous devez aussi lire tous les résultats d'une première requête exécutée avec mysql_unbuffered_query(), avant de pouvoir en exécuter une autre en utilisant le même link_identifier.

Voir aussi


Fonctions MySQL
PHP Manual