2013-12-12 39 views
1

我正在開發一個現有項目,其代碼由早期的開發人員編寫。當我讀到模型的功能它寫着:這個活動記錄查詢有什麼作用?

 $this->db->select('1', FALSE); 
    $this->db->where('product_id', $product_id); 
    $query = $this->db->get('product');  
    if ($query->num_rows() == 1) { 
     return false; 
    } 
     return true; 

我想知道這是否第一次發言呢?即$ this-> db-> select('1',FALSE);因爲產品表中沒有名爲1的列。我在網上搜索,但沒有任何幫助。 會有解釋嗎?

+0

db對象做什麼?特別是db對象的select()? – JustAPirate

+0

我知道它是_selecting_列,但名稱爲1的列在產品表中不存在,並且代碼運行正常,即產品表中沒有'未知列1'錯誤。 – Hammad

+0

必須在你的代碼中定義一個對象。它不是任何標準的PHP功能。請檢查$ this-> db中的哪個對象,並複製此對象類的select()函數。 – JustAPirate

回答

0

由於我沒有見過這樣的事情,到目前爲止,我會做一個

echo $this->db->last_query() 
$this->db->get()

只是爲了看看它的實際的SQL查詢。

0
SELECT 1 FROM 

它用於確定結果的存在。它將返回結果中每行的1列。

+0

是不是由num_rows()== 1確定? – Hammad

+0

否,因爲它可以返回多於1行,具體取決於完整查詢和數據庫中的內容。不過,我猜你會至少有一個產品匹配。 num_rows()只是檢查只有一個結果。 – LisaK1308

0
SELECT 1; 

=> 1

SELECT 1 + 1; 

=> 2

笨,你可以使用這個查詢時

$this->db->select('1', FALSE); 

如果你不把它轉化爲FALSE,你可以只有選擇列

$this->db->select('column', TRUE);