如何使用代码点火器从 mysql 获取单个结果? [复制]

Posted

技术标签:

【中文标题】如何使用代码点火器从 mysql 获取单个结果? [复制]【英文标题】:How to fetch a single result from mysql using code igniter? [duplicate] 【发布时间】:2013-05-31 10:04:13 【问题描述】:

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

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

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

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

【问题讨论】:

回显你的$query,看起来正常吗? 坦率地说,我对 CI 并不熟悉。我什至不知道这个 DB Query 类是如何工作的。我只是在他们的文档中找到了一些答案并使用了它。但不工作! 原始查询的问题是您将变量引用 ($id) 放在单引号短语中。 php 不会将 '$id' 转换为值。如果将变量放在带引号的短语中,请在外部使用双引号。为了更清楚起见,将变量包装在 braces 中。例如:$query = $this->db->query("SELECT * FROM items WHERE id=$id"); 【参考方案1】:

试试这样的:

$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()

我建议您阅读更多关于 here 的所有内容。

【讨论】:

伙计,你刚刚救了我。它有效:D 谢谢 没问题! :) 阅读 CI 文档——它们非常好。如果对您有帮助,请不要忘记选择答案。 是的,必须再等 2 分钟才能接受答案! 现在我很清楚了。再次非常感谢。你解释得比官方 CI 文件好! 哈哈,谢谢!我很高兴能帮上忙!

以上是关于如何使用代码点火器从 mysql 获取单个结果? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用代码点火器活动记录查询返回一维数组中的表字段

无法在 Codeigniter 中从模型获取查询结果到控制器

如何使用两个日期选择器从我的数据库中获取数据。代码点火器

代码点火器 |获取上一个 URL 并用作返回上一页的按钮

如何从python中的SQLite查询中获取单个结果?

如何获取所有mysql元组结果并转换为json