1

このコードを使用してユーザーを確認します。

public function verify_user($username, $password)
{
    $q = $this->db->where('username', $username)
        ->where('password', md5($password))
        ->limit(1)
        ->get('users');

    if ($q->num_rows() === 1) {
        echo '<pre>';
        print_r($q->row());
        echo '</pre>';
    } else {
        echo 'EMPTY';
    }
}

ただし、1 の場合は何も表示されません。

Array
(
)

このコードを使用して odbc num_rows = -1 の問題を修正すると表示されます: CODEIGNITER Issue on line 40 until 67

編集 =============================

私が実現したいのはこれです

stdClass Object
(
    [id_user] => 2
    [username] => 114080077
    [password] => 0d5ccab9e7f4ae3fe040f143046e386c
)

私が変更するコードは次のとおりです: 前 (STABLE VERSION) :

/**
 * Number of rows in the result set
 *
 * @access  public
 * @return  integer
 */
function num_rows()
{
    return @odbc_num_rows($this->result_id);
}

(問題の修正) 後:

/**
 * Number of rows in the result set
 *
 * @return  int
 */
public function num_rows()
{
    if (is_int($this->num_rows))
    {
        return $this->num_rows;
    }
    elseif (($this->num_rows = @odbc_num_rows($this->result_id)) !== -1)
    {
        return $this->num_rows;
    }

    // Work-around for ODBC subdrivers that don't support num_rows()
    if (count($this->result_array) > 0)
    {
        return $this->num_rows = count($this->result_array);
    }
    elseif (count($this->result_object) > 0)
    {
        return $this->num_rows = count($this->result_object);
    }

    return $this->num_rows = count($this->result_array());
}
4

3 に答える 3

1

system/database/drivers/odbc/odbc_result.php を次のものに置き換えることで修正されました: 問題を修正

于 2012-07-18T07:55:14.337 に答える
1

if 条件にエラーがあります。次を使用します。

$q->num_rows()

そして使ってみてください

$q->result()代わりは->row()

于 2012-07-18T07:23:12.730 に答える
1

CI_DB_odbc_resultの開発バージョンだけを使用して、2.1 バージョン ツリーの残りの部分を保持することはできません。それらすべてを置き換えたくない場合は、リポジトリから取得する必要があるのは次のファイルです。

system/database/DB_driver.php
system/database/DB_result.php
system/database/drivers/odbc/odbc_driver.php
system/database/drivers/odbc/odbc_result.php

(ODBC のみを使用すると仮定)

ODBC 結果クラスにはまだ問題がある可能性があり、それを調べますが、あなたの質問が CodeIgniter のまだリリースされていないバージョンに言及していることを考えると、問題レポートを CodeIgniter フォーラムまたはGitHub リポジトリ。

于 2012-07-18T08:00:15.320 に答える