我正在编辑其他人的代码,我是一名PHP初学者。
我想访问数据库“tga_purchase_items”中名为“email”的列的内容,其中行的“id”为“14”。我想将输出保存到变量“$ sp_email”。
我的代码是:
$sp_email = $this->db->select("email")->from("tga_purchase_items")->where("id", 14)->get();
尽管数据库字段已明确填充,但变量显示为空。
我做错了什么?我不习惯这个“ - >”完全没有语法。
答案 0 :(得分: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上阅读这些功能。
答案 1 :(得分:1)
我没有使用CodeIgniter和Active Record(我更喜欢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