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