如何使用代码点火器从mysql中获取单个结果?

Ori*_*med 5 php mysql codeigniter

遇到Codeigniter问题.我试图从mysql中获取产品的价值.mysql表包含一个名为的字段cost_price.我正在尝试使用产品ID获取单个产品的结果.这是我正在使用的代码,

$query = $this->db->query('SELECT * FROM items WHERE id="$id"');
$row = $query->result();
echo $row['cost_price']; 
Run Code Online (Sandbox Code Playgroud)

但什么都没发生!我的代码有什么问题?

我尝试了一些错误的代码来检查数据库是否响应,但似乎数据库工作正常.无法理解为什么我的查询找不到任何结果!

Sho*_*omz 15

尝试这样的事情:

$row = $this->db->get_where('items', array('id' => $id))->row();
Run Code Online (Sandbox Code Playgroud)

或者,如果您只需要价格:

$price = $this->db->select('cost_price')
                  ->get_where('items', array('id' => $id))
                  ->row()
                  ->cost_price;
Run Code Online (Sandbox Code Playgroud)

编辑

你的方法一点都不错,看看:

$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
Run Code Online (Sandbox Code Playgroud)

echo $row['cost_price']; //我们有一个对象,而不是一个数组,所以我们需要:

echo $row->cost_price;
Run Code Online (Sandbox Code Playgroud)

或者,如果你想要一个数组,你可以使用result_array()而不是result().

我的方式,row()只返回第一行.它也是一个对象,如果你需要一个数组,你可以使用row_array().

我建议你在这里阅读更多关于这一切的内容.