Fonction PHP mysql_unbuffered_query()

Définition et utilisation

La fonction mysql_unbuffered_query() envoie une requête SQL vers MySQL (sans obtenir / stocker les résultats).

Syntaxe

mysql_unbuffered_query(query,connection)
Paramètres Description
query Obligatoire. Définir la requête SQL à envoyer. Remarque : la chaîne de requête ne doit pas se terminer par un point-virgule.
connection Optionnel. Définir l'identifiant de connexion SQL. Si ce n'est pas défini, l'identifiant de la connexion ouverte précédemment est utilisé.

Description

mysql_unbuffered_query() envoie une requête SQL query vers MySQL, mais ne mysql_query() pour automatiquement obtenir et mettre en cache les jeux de résultats. D'une part, cela économise une mémoire considérable lors du traitement de grandes séries de résultats. D'autre part, on peut opérer sur le jeu de résultats immédiatement après avoir obtenu la première ligne, sans attendre que l'ensemble de l'expression SQL soit exécuté.

Lorsqu'on utilise plusieurs connexions de base de données, il est nécessaire de spécifier les paramètres optionnels connection.

Avis et commentaires

Remarque :Les avantages de mysql_unbuffered_query() ont un coût : sur le jeu de résultats retourné par mysql_unbuffered_query(), on ne peut pas utiliser mysql_num_rows() et mysql_data_seek(). De plus, avant d'envoyer une nouvelle requête SQL à MySQL, il est nécessaire d'extraire toutes les lignes de résultats non mises en cache générées par les requêtes SQL non mises en cache.

Exemple

<?php
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
// Requête large
$sql = "SELECT * FROM Person";
mysql_unbuffered_query($sql,$con);
// Début du traitement des données...
mysql_close($con);
?>