Dans le passé, je ferais quelque chose comme ceci:Comment vérifier s'il y a des résultats avec les déclarations préparées
$sql = 'SELECT * FROM customers WHERE customer_email="' . mysql_real_escape_string($_POST['customer_email']) . '" ';
$res = mysql_query($sql);
// if there are no hits...
if(mysql_num_rows($res) == FALSE) {
Aujourd'hui, je suis en train de faire la même chose mais avec des déclarations préparées:
$stmt = $dbh->prepare("SELECT * FROM customers where customer_email = ? LIMIT 1");
if ($stmt->execute(array($_POST['customer_email']))) {
Le 2ème ligne de ma requête préparée if ($ stmt ... est-ce que "si cette requête obtient un résultat" ou est-ce "si cette requête est exécutée indépendamment des résultats ou pas si elle s'exécute sans erreur"
J'essaye g à travailler est avec des instructions préparées comment faites-vous l'équivalent de mysql_num_rows() == FALSE?
Merci!
'rowCount()' est une méthode, et officiellement il est pris en charge que pour les lignes affectées par des manipulations, mais oui, pour MySQL cela fonctionne comme le nombre de lignes dans un jeu de résultats. – Wrikken
+1 Notez cependant que 'rowCount()' ne fonctionne que si vous utilisez des requêtes tamponnées. Aucune interface avec MySQL ne peut vous dire combien de lignes sont dans le jeu de résultats avant de les avoir récupérées. –
@Wrikken, merci, mis à jour. –