SQL-запрос Wordpress - возвращает "true", "false" или "null"


Я работаю над кодированием формы PHP для моего веб-сайта, которая требует, чтобы пользователь ввел код, прежде чем форма станет активной. У меня есть поле под названием "используется", которое я настроил как логическое значение/TINYINT, которое, как я думал, вернет 0, 1 или "ноль", но, похоже, оно так не работает.

В настоящее время у меня есть 2 записи в этой базе данных, у одной из них есть 1 в поле "используется", а у другой нет ничего (null), но по какой-то причине оба этих запроса возвращают "1."

Все коды будут введены в базу данных с 'null', присвоенным по умолчанию полю "используется". Когда они вводят свой код, он сначала проверяет, существует ли этот код в базе данных, если да, то проверяет поле "используется", чтобы узнать, зарегистрировался ли кто-то уже с использованием этого кода.

Я совершенно новичок в запросах WP, поэтому не мог бы кто-нибудь сообщить мне, как лучше всего это сделать? Вот мой код на данный момент:

$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
Author: user13286, 2014-09-16

1 answers

$wpdb->get_results() возвращает индексный массив объектов строк, но, похоже, вы ожидаете, что $exists будет содержать фактическое значение используемого столбца. вы, наверное, хотите $wpdb->get_var(): http://codex.wordpress.org/Class_Reference/wpdb#SELECT_a_Variable

 2
Author: karpstrucking, 2014-09-16 15:22:07