0

プライマリ インデックスでテーブルをクエリすると、1 行の結果しか生成されません。

$query= $this->db->query('SELECT Name FROM people WHERE PersonID = 1');

その「名前」にアクセスするには、常に結果セットを反復処理する必要があるように思えます。

foreach ($query->result() as $row)  {
    echo $row->Name;
}

結果セットを常に反復処理する必要がありますか? それには正当な理由があるかもしれませんが、すべての状況で絶対に必要ですか? のようなものにまっすぐ行く方法はありませんか

echo $query->result()->Name     //pseudo code - won't actually work

(これは PHP / CodeIgniter です)

4

3 に答える 3

0
$query->first_row()->Name

https://www.codeigniter.com/user_guide/database/results.html

于 2013-10-16T10:38:59.967 に答える
0

この2つの機能を見てください

function _getColumn($table, $column, $where = array()) {

        $this->db->select($column);
        $q = $this->db->get_where($table, $where);
        return ($q->num_rows() > 0) ? $q->result()[0]->$column : FALSE;

}

//after calling this function your result is as follows

var_dump($this->model_name->_getColumn('people', 'name', array('personID' => '1')));
//output
//string(6) "Maxcot" //or BOOLEAN(FALSE)
//also please note that it can not handle as "$column" parameter this input = "id, name"

2番目の機能は、より多くの列を取得することです

function _getColumns($table, $column, $where = array()) {
        $this->db->select($column);
        $this->db->where($where);
        $q = $this->db->get($table);
        return ($q->num_rows() > 0) ? $q->result()[0] : FALSE;
}

//after calling function like this
$person_info = $this->model_name->_getColumn('people', 'name, address, phone', array('personID' => '1'));

//you can access table columns like this (also check if $person_info is not FALSE)
$person_info->name;// ->address, ->phone
于 2013-10-16T01:39:05.347 に答える
0

$this->db->query('...')->fetchObject()->Name配列をfetch返すようにしてください

更新: codeigniter が使用できるため、コードは PDO で機能します

$this->db->query('...')->result()->Name

于 2013-10-15T23:54:52.520 に答える