mysqli_query() retourne toujours vrai
C'est mon formulaire:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="register_ajax.php" method="get">
<input type="text" name="email">
<input type="submit" value="test">
</form>
</body>
</html>
C'est mon code php:
<?php
$dbc = mysqli_connect("localhost","root","*******","continental_tourism") OR die(mysqli_connect_error());
$email = $_GET['email'];
$query = "SELECT email FROM customer_info WHERE email = '$email' ";
$r = mysqli_query($dbc, $query) OR die(mysqli_error($dbc));
if($r)
echo "Email address exists!";
else
echo "sss";
?>
Si je entrer une correcte(email Existant sur db) $r
est vrai. Mais si j'entre non de messagerie existants, puis aussi $r
est vrai. Pourquoi est-ce? Fondamentalement, je veux détecter l'ensemble vide. Comment puis-je le faire?
Merci!
tout d'abord, l'utilisation mysqli_real_escape_string() sur $_GET['email']
ce que vous êtes en train de faire est mal, vous de vérifier si la base de données est l'interrogation qui est toujours va être vrai dans votre cas...ce que vous devez faire est de vérifier le nombre de lignes, de retour de la requête
ce que vous êtes en train de faire est mal, vous de vérifier si la base de données est l'interrogation qui est toujours va être vrai dans votre cas...ce que vous devez faire est de vérifier le nombre de lignes, de retour de la requête
OriginalL'auteur Jayanga Kaushalya | 2012-04-17
Vous devez vous connecter pour publier un commentaire.
$r
ne seront false si il n'y avait erreur SQL. Sinon, il retournera toujours un ID de ressource, même si aucune ligne n'est retournée par votre instruction SELECT.Utilisation
mysqli_num_rows()
de compter le nombre de lignes retournées. Zéro signifie que personne n'est à l'aide de cette adresse e-mail.msqli_num_rows
? 🙂Oups! J'ai très certainement fait!
OriginalL'auteur John Conde
mysqli_query()
sera renvoie toujours une MySQLi ressource de résultat si la requête a été succès. Une ressource de toujours évaluer àTRUE
lors d'un essai comme une valeur booléenne.Une requête réussie n'est pas nécessairement celle qui retourne des résultats, c'est tout simplement une requête qui n'a pas manqué. Les requêtes sont considérées comme ayant échoué quand il ya une erreur, par exemple une erreur de syntaxe ou une erreur de traitement dans le serveur MySQL - auquel cas ils seront de retour
FALSE
. Mais une requête qui ne trouve pas de résultats est encore un succès de la requête.Vous devez utiliser
mysqli_num_rows()
pour déterminer si la requête trouvé aucun résultat:OriginalL'auteur DaveRandom
mysqli_query
retournera un objet de résultat sur la réussite et l'false
en cas d'échec. Aucune ligne sélectionnée n'est pas considéré comme un échec. Vous pouvez utilisermysqli_num_rows
de vérifier le nombre de lignes retournées.OriginalL'auteur Alex Turpin
On a besoin de tester pour voir si
$r
est vrai, et si le nombre de lignes est supérieur à 0.Les ouvrages suivants:
OriginalL'auteur Irfan Virk