(PHP 4 >= 4.0.6, PHP 5)
mysql_unbuffered_query — Exécute une requête SQL sans mobiliser les résultats MySQL
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.
La requête SQL à exécuter
Les données de la requête doivent être proprement échappées.
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.
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.
Note: L'intérêt de mysql_unbuffered_query() est tempéré par une limitation : mysql_num_rows() et mysql_data_seek() ne fonctionne pas sur une ressource retournée par mysql_unbuffered_query(). 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.