web-dev-qa-db-fra.com

Requête Wordpress SQL - retourne 'true' 'false' ou 'null'

Je travaille actuellement sur le codage d'un formulaire PHP pour mon site Web qui demande à l'utilisateur de saisir un code avant que le formulaire ne devienne actif. J'ai un champ appelé "utilisé" que j'ai configuré en tant que booléen/TinyInt et dont je pensais qu'il renverrait 0, 1 ou "null", mais il ne semble pas fonctionner comme cela.

Actuellement, j'ai 2 entrées dans cette base de données, l'une d'entre elles a un 1 dans le champ 'used' et l'autre n'a rien (null), mais pour une raison quelconque, ces deux requêtes renvoient "1".

Tous les codes seront entrés dans la base de données avec "null" attribué par défaut au champ "utilisé". Quand ils entrent leur code, il vérifie d'abord si ce code existe dans la base de données, le cas échéant, puis vérifie le champ "utilisé" pour voir si quelqu'un s'est déjà enregistré à l'aide de ce code.

Je suis assez nouveau pour les WP, alors quelqu'un pourrait-il me faire savoir quel serait le meilleur moyen d'y parvenir? Voici mon code jusqu'à présent:

$enteredCode = $_GET['code'];

global $wpdb;

$codeQuery = $wpdb->query("SELECT used FROM rpp_codes WHERE code='".$enteredCode."'");
$exists = $wpdb->get_results("SELECT used FROM rpp_codes WHERE code='".$enteredCode."'");

if (count ($exists) < 1) {
    echo "invalid";
} else {
    if ($codeQuery == 1) {
        echo "true";
    } else {
        echo "false";
    }
}
1
user13286

$wpdb->get_results() renvoie un tableau d'index d'objets de ligne, mais il semble que vous attendiez que $exists contienne la valeur réelle de la colonne utilisée. vous voulez probablement $wpdb->get_var(): http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Variable

2
karpstrucking