0

これが私の問題です:

Codeigniterのドキュメントには次のように書かれています:

<?php

    $array = array('name' => $name, 'title' => $title, 'status' => $status);

    $this->db->where($array);

    // Produces: WHERE name = 'Joe' AND title = 'boss' AND status = 'active'

?>

コントローラーからモデルへのwhere句に条件を渡したいだけです。

コントローラ

<?php
    $condition = array('id' => $id_user)
    $data['info_user'] = $this->user_model->get_user($condition);
?>

モデル

public function get_user($condition)
{
    $q = $this
        ->db
        ->where($condition)
        ->get('users');

    if($q->num_rows > 0)
    {
        return $q->row();
    }
}

この戻り値:SELECT * FROM(users)WHERE 3IS NULL

しかし、配列をモデルに直接配置すると($

4

1 に答える 1

0

配列を渡す必要はありませんし、あなたがやろうとしている方法でそれを行うことができると私は確信していません。以下のように、値自体をモデルに渡すだけです。複数の変数を表示するように編集された回答。

コントローラ:

   $data['info_user'] = $this->user_model->get_user($id_user,$user_login);

モデル:

public function get_user($id_user,$user_login)
{
    $q = $this
        ->db
        ->where('id_user',$id_user)
        ->or_where('user_login',$user_login);
        ->get('users');

    if($q->num_rows == 1)
    {
        return $q->row();
    }
}

データベースから単一の結果が必要な場合の補足として、ユーザーを取得する場合のように、常に単一の結果をチェックし、>0ではないことを確認します。1人のユーザーのみが返されるようにする必要があります。

于 2013-02-25T12:43:31.210 に答える