Comment puis-je vérifier si aucune correspondance n'a été trouvée dans mysql (node.js)?
mysql.query("select * from table1 where name = 'abcd'", function(error, result, field) {
if(error) {
exist(error); //No error
} else if(result) {
console.log(result); //displays '[]'
exist(null, result);
} else {
exist(null, null); //It is never execute
}
});
function exist(error, result) {
if(result)
console.log("Test:"+result); //Executed and displays 'Test:'
}
Ma base de données ne contient pas name = 'abcd'. Alors, comment puis-je vérifier si la requête ne correspond pas?
Vous recevez un tableau vide ([]
) à la suite de votre requête, car comme vous l'avez dit, votre base de données ne contient aucune ligne avec name = 'abcd'
.
Quand vous faites:
if (result) {
if (result)
console.log("Test:" + result);
, vous entrez le if
, car Javascript évalue true
pour []
. Jetez un œil à cet article ici , qui explique comment Javascript évalue les valeurs true
et false
.
Une meilleure façon de vérifier si votre tableau de résultats est vide est de faire:
if (result.length > 0) {
if (result)
console.log("Test:" + result);