почему ezSQL возвращает пустой набор результатов - PullRequest
0 голосов
/ 06 февраля 2012

Я работал над чем-то, о чем меня спросил друг. Он использует ezsql для своих запросов, и я довольно новичок в этом. Хотя я использовал его в том же проекте.

Вот столбцы базы данных и данные, чтобы увидеть это ясно enter image description here

И часть кода, которая не работает:

    $customsql = new ezSQL_mysql();
    $customsql->query("SET NAMES 'utf8'"); 
    $customsql->query("SELECT * FROM uyeler WHERE email='".escape($_POST['eposta'])."' AND sifre='".escape($_POST['sifre'])."'");
    if($customsql->num_rows>0){
        if($customsql->onay=='1'){
            //Things to do if user is activated.
        }else{
            $hata='Onay:'.$customsql->onay.' -Error: Bu eposta adresiyle kayıtlı onaylanmamış bir kullanıcı var. Lütfen epostanızı onaylayın.';
            $_SESSION['loggedin']=FALSE;
        }

"onay" - это varchar в базе данных. И вот результат: enter image description here

Пока он работает в процессе регистрации, почему он здесь не работает?

Заранее спасибо.

1 Ответ

1 голос
/ 08 февраля 2012

Я нашел проблему. Выше было 2 ошибки.

1- Присвоить результаты запроса переменной.

2- «get_results», если вы ожидаете более одного ряда от вашего запроса. («get_row», если вам нужна только одна строка, и «get_var», если вы запрашиваете только один столбец вместо *)

Вот как вы должны использовать запрос, по которому вам нужны результаты:

$customsql = new ezSQL_mysql();
$customsql->query("SET NAMES 'utf8'"); 
$yourvariable=$customsql->get_row("SELECT * FROM uyeler WHERE email='".escape($_POST['eposta'])."' AND sifre='".escape($_POST['sifre'])."'");
if($customsql->num_rows>0){
    if($yourvariable->onay=='1'){
        //Things to do if user is activated.
    }else{
        $hata='Onay:'.$customsql->onay.' -Error: Bu eposta adresiyle kayıtlı onaylanmamış bir kullanıcı var. Lütfen epostanızı onaylayın.';
        $_SESSION['loggedin']=FALSE;
    }
...