mysqli_query,

(PHP 5)

mysqli_query, mysqli->query() — Exécute une requête sur la base de données

Description

Style procédural

mixed mysqli_query ( mysqli $link, string $query [, int $resultmode] )

Style orienté objet (méthode)

class mysqli {
mixed query ( string $query [, int $resultmode] )
}

Exécute une requête sur la base de données.

En termes de fonctionnalités, utiliser cette fonction revient à appeler mysqli_real_query() suivie de mysqli_use_result() ou mysqli_store_result() .

Liste de paramètres

link

Style procédural uniquement : Un identifiant de lien retourné par la fonction mysqli_connect() ou par la fonction mysqli_init()

query

La requête, sous la forme d'une chaîne de caractères .

resultmode

Soit la constante MYSQLI_USE_RESULT , soit la constante MYSQLI_STORE_RESULT , suivant le comportement désiré. Par défaut, la constante MYSQLI_STORE_RESULT est utilisé.

Si vous utilisez la constante MYSQLI_USE_RESULT , tous les appels suivants retourneront une erreur Commands out of sync tant que vous n'aurez pas appelé la fonction mysqli_free_result() .

Valeurs de retour

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec. Pour SELECT, SHOW, DESCRIBE ou EXPLAIN , mysqli_query() retournera un résultat sous la forme d'un objet.

Exemples

Exemple 1689. Style orienté objet

<?php
$mysqli 
= new  mysqli ( "localhost" "my_user" "my_password" "world" );

/* Vérification de la connexion */
if ( mysqli_connect_errno ()) {
    
printf ( "Échec de la connexion : %s\n" mysqli_connect_error ());
    exit();
}

/* "Create table" ne retournera aucun jeu de résultats */
if ( $mysqli -> query ( "CREATE TEMPORARY TABLE myCity LIKE City" ) ===  TRUE ) {
    
printf ( "Table myCity créée avec succès.\n" );
}

/* Requête "Select" retourne un jeu de résultats */
if ( $result  $mysqli -> query ( "SELECT Name FROM City LIMIT 10" )) {
    
printf ( "Select a retourné %d lignes.\n" $result -> num_rows );

    
/* Libération du jeu de résultats */
    
$result -> close ();
}

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
if ( $result  $mysqli -> query ( "SELECT * FROM City" MYSQLI_USE_RESULT )) {

    
/* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
        le jeu de résultats est clos. Tous les appels retourneront un 'out of sync' 
    */
    
if (! $mysqli -> query ( "SET @a:='this will not work'" )) {
        
printf ( "Erreur : %s\n" $mysqli -> error );
    }
    
$result -> close ();
}

$mysqli -> close ();
?>

Exemple 1690. Style procédural

<?php
$link 
mysqli_connect ( "localhost" "my_user" "my_password" "world" );

/* Vérification de la connexion */
if ( mysqli_connect_errno ()) {
    
printf ( "Connect failed: %s\n" mysqli_connect_error ());
    exit();
}

/* "Create table" ne retournera aucun jeu de résultats */
if ( mysqli_query ( $link "CREATE TEMPORARY TABLE myCity LIKE City" ) ===  TRUE ) {
    
printf ( "Table myCity créée avec succès.\n" );
}

/* Requête "Select" retourne un jeu de résultats */
if ( $result  mysqli_query ( $link "SELECT Name FROM City LIMIT 10" )) {
    
printf ( "Select a retourné %d lignes.\n" mysqli_num_rows ( $result ));

    
/* Libération du jeu de résultats */
    
mysqli_free_result ( $result );
}

/* Si nous avons à récupérer beaucoup de données, nous utilisons MYSQLI_USE_RESULT */
if ( $result  mysqli_query ( $link "SELECT * FROM City" MYSQLI_USE_RESULT )) {

    
/* Notez que nous ne pouvons exécuter aucune fonction qui agit sur le serveur tant que
        le jeu de résultats est clos. Tous les appels retourneront un 'out of sync' 
    */
    
if (! mysqli_query ( $link "SET @a:='this will not work'" )) {
        
printf ( "Erreur : %s\n" mysqli_error ( $link ));
    }
    
mysqli_free_result ( $result );
}

mysqli_close ( $link );
?>

L'exemple ci-dessus va afficher :


Table myCity créée avec succès.
Select a retourné 10 lignes.
Erreur: Commands out of sync;  You can't run this command now

  

Voir aussi

mysqli_real_query()mysqli_multi_query()mysqli_free_result()