downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mysqli::thread_id> <mysqli::stmt_init
Last updated: Fri, 14 Aug 2009

view this page in

mysqli::store_result

mysqli_store_result

(PHP 5)

mysqli::store_result -- mysqli_store_resultTransfère un jeu de résultats à partir de la dernière requête

Description

Style orienté objet (méthode) :

mysqli_result store_result ( void )

Style procédural :

mysqli_result mysqli_store_result ( mysqli $link )

Transfère le jeu de résultats à partir de la dernière requête sur la connexion à la base de données spécifiée par le paramètre link pour une utilisation avec mysqli_data_seek().

Liste de paramètres

link

Seulement en style procédural : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

Valeurs de retour

Retourne un résultat stocké sous la forme d'un objet ou FALSE si une erreur survient.

Note: mysqli_store_result() retourne FALSE dans le cas où la requête ne retourne pas de jeu de résultat (si la requête est de type INSERT par exemple). Cette fonction retournera toujours FALSE si le jeu de résultats ne peut être lu. Vous pouvez savoir s'il y a une erreur en utilisant la fonction mysqli_error() et en regardant si elle renvoie une chaîne vide, ou si mysqli_errno() retourne zéro, ou bien si mysqli_field_count() retourne une valeur différente de zéro. Une autre raison pour que cette fonction retourne FALSE est que le jeu de résultats retourné après une requête réussie appelée par mysqli_query() est trop long (la mémoire pour celui-ci ne peut être allouée). Si mysqli_field_count() retourne une valeur différente de zéro, le traitement devrait produire un jeu de résultats non vide.

Notes

Note: Il est toujours conseillé de libérer la mémoire allouée pour le résultat en utilisant la fonction mysqli_free_result(), lors du transfert de grands résultats en utilisant la fonction mysqli_store_result() cela devient particulièrement important.

Exemples

Voir la fonction mysqli_multi_query().

Voir aussi



add a note add a note User Contributed Notes
mysqli::store_result
Warner
21-Jul-2009 11:45
It also seems, that executing a SET statement in multi_query() returns an extra recordset too, which one would not expect.
lau at goldenweb dot com dot au
13-Apr-2007 10:29
Beware when using stored procedures:
If you connect to the database and then call dbproc A followed by a call to db proc B and then close the connection to the db, the second procedure call will not work.

It looks like there is a bug in MYSQL or mysqli that returns an extra recordset than you would expect. It then doesn't let you call another stored procedure until you finish processing all the recordsets from the first stored procedure call.

The solution is to simply loop through the additional recordsets between calls to db procs. Here is a function that I call between db proc calls:

<?php
#--------------------------------
function ClearRecordsets($p_Result){
#--------------------------------
   
$p_Result->free();   
    while(
$this->Mysqli->next_result()){
      if(
$l_result = $this->Mysqli->store_result()){
             
$l_result->free();
      }
    }
}

?>

mysqli::thread_id> <mysqli::stmt_init
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites