0

私は友人が私に頼んだことに取り組んでいます。彼はクエリに ezsql を使用していますが、私はそれを使い始めたばかりです。同じプロジェクトで使用しましたが。

これは、データベースの列とデータを明確に示すためのものです ここに画像の説明を入力

そして、失敗するコードの部分:

    $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 です。結果は次のとおりです。 ここに画像の説明を入力

登録プロセスで機能しているのに、ここで機能しないのはなぜですか?

前もって感謝します。

4

1 に答える 1

1

問題が見つかりました。以上、2箇所誤りがありました。

1- クエリ結果を変数に割り当てます。

2-クエリから複数の行が予想される場合は「get_results」。(* の代わりに 1 つの行のみを照会する場合は「get_row」、1 つの列のみを照会する場合は「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;
    }
于 2012-02-08T19:25:59.877 に答える