2010-12-06 19 views
8

AOP Comment puis-je afficher le nombre de lignes affectées par ceci:Fetch nombre de lignes affectées et dernier ID inséré à l'aide déclaration

$sql = $conn->prepare ("UPDATE countries SET country=:country"); 
$sql->bindValue(":country", "blablaa"); 
$sql->execute(); 

Et comment puis-je montrer le dernier ID inséré avec ceci:

$sql = $conn->prepare ("INSERT INTO countries (country) VALUES (:country)"); 
$sql->bindValue(":country", "test"); 
$sql->execute(); 
echo $sql->lastInsertId(); // id of last inserted 

J'ai essayé, mais je reçois un appel d'erreur de méthode non définie PDO::lastInsertId()

Répondre

7
$sql->lastInsertId(); 

a besoin d'être représentant avec

$dbh->lastInsertId(); 

Où $ dbh est votre objet PDO.

Voir here pour plus d'informations.

exec renvoie le nombre de lignes affectées, execute renvoie uniquement une valeur true ou false.

+0

Je ne peux pas le faire fonctionner avec $ dbh-> lastInsertId() ;. Dans le lien que vous avez fourni Il dit $ dbh-> exec ("INSERT INTO ..." mais c'est double travail je veux dire que j'ai le $ sql avec préparer ci-dessus, pourquoi j'écrirais tout ça pour faire écho au dernier inséré. ?? Il me manque quelque chose, pourriez-vous écrire l'exemple de mon code sur la façon dont vous échoieriez lastinsertid()? – Karem

+2

Dans votre cas, vous utilisez '$ conn' comme objet PDO, alors essayez' $ conn-> lastInsertId() " – Erik