(PHP 4 >= 4.0.6, PHP 5)
mysql_unbuffered_query — Exécute une requête SQL sans mobiliser les résultats MySQL
Cette extension est obsolète depuis PHP 5.5.0, et sera supprimée dans le futur. À la place, les extensions MySQLi ou PDO_MySQL doivent être utilisées. Voir aussi le guide MySQL : choix de l'API ainsi que la FAQ associée pour plus d'information. Voici les alternatives à cette fonction :
$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.
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.
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 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
.