2012-04-20 34 views
2

我正在尋找一種方法來從數據庫查詢返回一個數組,但僅限於第一行。我寧願不使用對象..CodeIgniter - 數據庫結果數組,但只有一行

我目前的解決方案:

//Gather 
$data = $this->db->from('view')->where('alias', $alias)->get()->result_array(); 

//Collect the first row only 
$data = $data[0]; 

這是非常醜陋的是誠實的。如上所述,我寧願不使用對象。

+0

爲什麼你不想使用對象? – Mischa 2012-04-20 14:08:35

+2

使用行方法。 http://codeigniter.com/user_guide/database/results.html – TigerTiger 2012-04-20 14:10:24

+0

也很好奇,像@Mischa,你爲什麼迴避物體?特別是在MVC框架中。 – 2012-04-20 14:13:40

回答

7

使用row()方法代替:

$data = $this->db->from('view')->where('alias', $alias)->get()->row(); 

[哦,你不想使用的對象。 row_array()然後。但考慮對象]

2

你可以這樣做:

$data = $this->db->from('view')->where('alias', $alias)->get()->row_array(); 

這不一樣MiniTech移動的答案,只是它返回一個數組(像你想要的),而不是一個對象。

0

您可以使用row_array()函數從單行中獲取數據。將該行指定爲參數。如果你想只得到第一行作爲一個數組,你可以使用此代碼太

$this->db->from('view')->where('alias', $alias)->get()->result_array(0); 
0

$data = $this->db->from('view')->where('alias', $alias)->get()->first_row('array'); 

例如,爲了讓您的結果的第一行,這樣做

但是,如果您確實只想得到1個結果,總是使用select('TOP 1 ....'),因爲此方法可以提高查詢返回時間性能。當你直接使用get()時,它會嘗試返回整個數據而不是第一行。然後它顯示你想要的(第一行)。但是如果你使用TOP 1方法,這是最好的。

相關問題