Bonjour,

Uncaught Error: Call to a member function rowCount() on integer in /var/www/html///update_table.php:86

Erreur non intercepté ??????

De plus, je ne touve rien sur cette erreur sur internet :D

            try {
                $stmnt = "UPDATE $table SET $fields_str WHERE id = $id";
                $count = $connexion->exec($stmnt);
                $ar['rowsaffexted'] = $count->rowCount(); // ligne 86
            } catch (Exception $exc) {
                $msgerr .= " UPDATE ->" .$exc->getMessage();
            }

Ce que je veux

Je voudrais savoir combien de ligne on été modifiées.

Ce que j'obtiens

Uncaught Error: Call to a member function rowCount() on integer in /var/www/html///update_table.php:86

4 réponses


Elyanor
Réponse acceptée

Hello,

Si on regarde bien la doc, on s'aperçoit que la fonction exec renvoit expressément le nombre de lignes affectées ;)

À partir de là : $count = $connexion->exec($stmnt);
Si tu affiches $count, tu verras que c'est déjà un nombre de lignes ;)

JeremyB
Réponse acceptée

Salut,

Comme dit dans la doc de exec() :

PDO::exec() retourne le nombre de lignes qui ont été modifiées ou effacées par la requête SQL exécutée. Si aucune ligne n'est affectée, la fonction PDO::exec() retournera 0.

Ainsi, tu as juste à faire :

$ar['rowsaffexted'] = $count;

EDIT : merde, le temps que je te rédige ça, Elyanor t'a déjà répondu !

@Elyanor <3 :D ❤️

@plus
Pierre

@JeremyB , c'est fait et ça fonctionne ;)

@pluche
Pierre