2012-01-14 74 views
0

我在編輯別人的代碼,我是PHP初學者。

我想要訪問數據庫「tga_purchase_items」中行的「id」爲「14」的名爲「email」的列的內容。我想將輸出保存到變量「$ sp_email」。

我的代碼是這樣的:

$sp_email = $this->db->select("email")->from("tga_purchase_items")->where("id", 14)->get(); 

變量是走出空雖然數據庫領域絕對是填充。

我在做什麼錯?我不習慣這個「 - >」語法。

+0

這是CodeIgniter中的Active Record嗎? – 2012-01-14 17:30:30

+3

語法是「面向對象的」,我們不知道哪個類在「db」中,你沒有告訴我們。例如,我也有一個與上面的代碼不同的數據庫類。如果我們不知道類DB如何工作,我們無法回答。 – prdatur 2012-01-14 17:32:19

+0

@KemalFadillah,謝謝你澄清代碼語法是基於什麼的。我甚至不知道以前要搜索什麼。 – barryedmund 2012-01-14 17:43:53

回答

3

數據庫中使用的語法傾向於Codeigniter和活動記錄。

如果是這樣,下面的代碼將檢索電子郵件列。

$result_set = $this->db->select("email")->from("tga_purchase_items")->where("id", 14)->get(); 

$result_object = $result_set->row(); 

$sp_email = $result_object->email; 

你缺少的是從你得到的結果集中檢索數據。 get()函數返回的結果集與本機MySQLi Result類相似。這意味着你需要從這個集合中檢索你想要的數據。 CodeIgniter中提供了各種功能來執行此操作,即row(),row_array(),result()result_array(),您可以在manual page上閱讀它們。

+0

這釘了它... 10/10。謝謝你。 – barryedmund 2012-01-14 22:39:47

1

我沒有做太多的使用CodeIgniter和活動記錄(我喜歡Zend Framework的),但我認爲這樣的事情會做的伎倆:

$this->db->select('email'); 
$sp_email = $this->db->get_where('tga_purchase_items', array('id' => '14')); 

看看本作更詳細的解釋: http://codeigniter.com/user_guide/database/active_record.html

+0

非常感謝。我不知道甚至可以搜索什麼,這樣代碼鏈接就非常棒。我會嘗試你現在提供的代碼建議。 – barryedmund 2012-01-14 17:43:08