9
votes

Comment vérifier si l'entrée MySQL est vide dans PHP?

Voici la variable de description que je suis écho à partir de ma table: xxx

Parfois, l'enregistrement $ I'th est vide et ne contient aucune donnée dans elle / aucune description.

Ce que je veux faire, c'est écho "Aucune description disponible" pour les enregistrements qui sont vides xxx

ma tentative ne fonctionne pas si elle résonne ensuite sans description Disponible pour chaque enregistrement même ceux qui ne sont pas vides.

Quelle est la réponse?


0 commentaires

3 Réponses :


0
votes

Utilisez le mysql_affected_rows Fonction: xxx


2 commentaires

Cela ne fera pas la différence si la colonne contient une valeur nulle.


Désolé, j'ai lu la mauvaise question. Votre réponse est correctement. +1 pour vous :)



27
votes

Isset ($ Description) code> résultera true car $ la description est toujours définie, même si sa valeur est "vide". Ce que vous devez utiliser est vide .

if (empty($description)) {
    echo "No description available";
} else {
    echo $description;
}


1 commentaires

@ Oui123: Voulez-vous s'il vous plaît élaborer à ce sujet? Vous n'en avez pas besoin sur chaque compte, mais pourquoi ne pas l'utiliser?



2
votes

Cela dépend de ce que vous voulez dire.

mySQL_RESULT retourne false code > En cas d'échec, ce qui se produirait si vous avez spécifié un champ invalide (rangée, champ). Pour vérifier cela, vous voulez utiliser l'opérateur de identité === code>, qui vérifie à la fois la valeur et le type. L'exploitant d'égalité == code>, la fonction vide () code> fonction et l'évaluation conditionnelle d'une instruction IF Tout vérifier la valeur mais pas le type. P>

Cela signifie que l'utilisation de l'une de ces méthodes, il n'y a aucune différence entre différentes valeurs qui équivalent à booléen false code>, comme des chaînes vides, des tableaux vides, de la chaîne '0' code>, et le Valeur null code>. p>

Donc, si vous voulez être vraiment complet à ce sujet, vous pouvez faire quelque chose comme ce qui suit: p>

if ($description === FALSE) {
  throw new Exception("The row $i was out of range in query $query.");
} else if ($description === NULL) {
  // assuming that the description field has a default value of NULL
  // * this one I'm not sure about.. the documentation for mysql_result claims
  //   that it returns a string, so this may never happen.
  //   It's left as an exercise for the reader.
  throw new Exception("Uninitialized value in result row $i of db query $query");
} else if ($description === '') {
  echo "No description available";
} else {
  echo $description;
}


0 commentaires