mysqli_stmt_affected_rows,

(PHP 5)

mysqli_stmt_affected_rows, mysqli_stmt->affected_rows — Retourne le nombre total de lignes modifiées, effacées ou insérées par la dernière requête

Description

Style procédural

int mysqli_stmt_affected_rows ( mysqli_stmt $stmt )

Style orienté objet (méthode)

class mysqli_stmt {
int affected_rows
}

Retourne le nombre de lignes affectées par une requête INSERT , UPDATE ou DELETE .

La fonction mysqli_stmt_affected_rows() ne fonctionne que sur les requêtes qui modifient la table. Si vous désirez récupérer le nombre de lignes retournées par une requête SELECT, utilisez plutôt la requête mysqli_stmt_num_rows() .

Liste de paramètres

stmt

Style procédural uniquement : Un identifiant de requête retourné par la fonction mysqli_stmt_init() .

Valeurs de retour

Un entier supérieur à zéro indique le nombre de lignes affectées ou retrouvées. Zéro indique qu'aucun enregistrement n'a été modifié par une requête UPDATE/DELETE, aucune ligne ne correspond à la clause WHERE dans la requête ou bien qu'aucune requête n'a été encore exécutée. -1 indique que la dernière requête a retourné une erreur.

Note: Si le nombre de lignes affectées est plus grand que la valeur entière maximale de PHP, le nombre de lignes affectées sera retourné comme une chaîne de caractères.

Exemples

Exemple 1706. 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();
}

/* Création d'une table temporaire */
$mysqli -> query ( "CREATE TEMPORARY TABLE myCountry LIKE Country" );

$query  "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?" ;

/* Préparation de la requête */
if ( $stmt  $mysqli -> prepare ( $query )) {

    
/* Insertion de la variable */
    
$code  'A%' ;
    
$stmt -> bind_param ( "s" $code );

    
/* Exécution de la requête */
    
$stmt -> execute ();

    
printf ( "Lignes insérées : %d\n" $stmt -> affected_rows );

    
/* Fermeture du traitement */
    
$stmt -> close ();
}

/* Fermeture de la connexion */
$mysqli -> close ();
?>

Exemple 1707. Style procédural

<?php
$link 
mysqli_connect ( "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();
}

/* Création d'une table temporaire */
mysqli_query ( $link "CREATE TEMPORARY TABLE myCountry LIKE Country" );

$query  "INSERT INTO myCountry SELECT * FROM Country WHERE Code LIKE ?" ;

/* Préparation de la requête */
if ( $stmt  mysqli_prepare ( $link $query )) {

    
/* Insertion de la variable */
    
$code  'A%' ;
    
mysqli_stmt_bind_param ( $stmt "s" $code );

    
/* Exécution de la requête */
    
mysqli_stmt_execute ( $stmt );

    
printf ( "Lignes insérées : %d\n" mysqli_stmt_affected_rows ( $stmt ));

    
/* Fermeture du traitement*/
    
mysqli_stmt_close ( $stmt );
}

/* Fermeture de la connexion */
mysqli_close ( $link );
?>

L'exemple ci-dessus va afficher :


Lignes insérées : 17

  

Voir aussi

mysqli_stmt_num_rows()
mysqli_prepare()