J'ai légèrement modifié la fonction Select Exists que j'ai trouvée sur stackoverflow, mais peu importe ce que j'essaye, ma fonction ci-dessous renvoie toujours $sqlResult
为true
. Même si je ne garde que deux entrées dans la base de données.
Est-ce que Select existe toujours valide ?
Aucune des réponses suggérées par le système stackoverflow n'a répondu à ma question, suggérant plutôt d'utiliser une méthode qui vérifie le nombre de lignes renvoyées au lieu d'utiliser l'existe. (Ou le lien qu'ils ont donné n'explique pas vraiment ce que représente le résultat existant.)
function uniquedoesexist($dbHandle,$tablename,$fieldname,$value) { $sql = 'SELECT EXISTS(SELECT * FROM `' . $tablename . '` WHERE `'.$fieldname.'` = ? LIMIT 1 )'; $stmt = mysqli_prepare($dbHandle, $sql); mysqli_stmt_bind_param($stmt, 's',$value); $sqlResult = mysqli_stmt_execute($stmt); echo '$sqlResult: ' . $sqlResult.$br; return $sqlResult; }
Utilisation : nom d'utilisateur Index varchar(255) utf8_german2_ci
Désolé pour ma question de débutant. Les entrées pour les noms de champs sont définies pour être uniques.
Vous devez obtenir les résultats de la requête de la manière suivante :
Test en ligne PHP mysqli
Une autre façon consiste à obtenir le nombre de lignes renvoyées au lieu d'utiliser
SELECT EXISTS
:PHP mysqli num_rows