参见英文答案 > CodeIgniter – return only one row? 8个
遇到Codeigniter问题.我试图从MysqL中获取产品的价值. MysqL表包含一个名为cost_price的字段.我正在尝试使用产品ID获取单个产品的结果.这是我正在使用的代码,
$query = $this->db->query('SELECT * FROM items WHERE id="$id"');
$row = $query->result();
echo $row['cost_price'];
但什么都没发生!我的代码有什么问题?
最佳答案
尝试这样的事情:
$row = $this->db->get_where('items',array('id' => $id))->row();
或者,如果您只需要价格:
$price = $this->db->select('cost_price')
->get_where('items',array('id' => $id))
->row()
->cost_price;
编辑
你的方法一点都不错,看看:
$query = $this->db->query('SELECT * FROM items WHERE id="$id"');
$res = $query->result(); // this returns an object of all results
$row = $res[0]; // get the first row
echo $row [‘cost_price’]; //我们有一个对象,而不是一个数组,所以我们需要:
echo $row->cost_price;
或者,如果需要数组,可以使用result_array()而不是result().
我的方式,row(),只返回第一行.它也是一个对象,如果你需要一个数组,你可以使用row_array().