Bonjour,

Voici mon code pour vérifier si un enregistrement existe.

Mon code fonctionne mais faut t'il plutôt privilégier fetchColumn ?

Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
$idann = (int) $_GET['idann'];
 
$req = $pdo->prepare('SELECT a.idann, a.content, a.level, a.location, a.amount, u.username, u.email
FROM ad a
INNER JOIN users u ON a.idmbr = u.idmbr
WHERE a.idann = ?');
$req->execute([$idann]);
$ad = $req->fetch();
 
if (!$ad) {
    header('Location: index.php?p=ad/search');
    exit();
}

et je ne comprends pas bien aussi le rowcount, http://php.net/manual/fr/pdostatement.rowcount.php regardez l'exemple numéro 2 "Comptage des lignes retournées par une requête SELECT"

Je cite la doc php :

Pour la plupart des bases de données, PDOStatement::rowCount() ne retourne pas le nombre de lignes affectées par une requête SELECT. À la place, utilisez PDO::query() pour faire une requête SELECT COUNT(*), puis utilisez PDOStatement::fetchColumn() pour récupérer le nombre de lignes retournées. Votre application peut ainsi effectuer la bonne action.
donc je ne comprends pas, mon code fonctionne oui, mais est-ce qu'il existe une méthode plus "propre" pour vérifier qu'un enregistrement existe ?

merci pour votre aide.