繁体   English   中英

如何从查询到字段的一条记录中获取单个值

[英]How to get a single value from one record from a query into a field

在我的系统中,我有很多代码实例,如下所示:

$value = mysqli_fetch_array(mysqli_query($con, "SELECT SUM(price) as total from items WHERE a=1 AND b=2"));

然后在代码中稍后使用$value并从数组中计算出总价格

我正在尝试在一段新代码中复制它,如下所示:

$recent_sale_id = mysqli_fetch_array(mysqli_query($con, "SELECT id as id FROM items where item_code='$item_code' and status='BULK-ITEM-SALE' order by sold_at DESC LIMIT 1"));

该查询在直接针对数据库运行时有效(当然用项目代码替换 $item_code)。 但是$recent_sale_id然后只有值 'Array'。

我想知道两件事:

  1. 我究竟做错了什么? 我的代码似乎与其他正常工作的代码完全相同。

  2. 是否有一种更简单的方法可以将查询中的值获取到字段中,而不使用看起来会创建数组的函数? 有没有更合适的mysqli_fetch*函数?

您无法将$value作为数字访问,因为它也是一个数组。 在第一种情况下,您需要使用$value[0]$value['total']来获得结果; 在第二个$recent_sale_id[0]$recent_sale_id['id'] 您可以使用任何一种形式,因为默认情况下mysqli_fetch_array返回按列号和列名索引的数组。

不幸的是,MySQLi 接口没有与 PDO 的fetchColumn等效的fetchColumn ,它允许您直接从结果集中的行中获取单个列的值。

如果 $recent_sale_id 在这种情况下返回一个数组,则意味着它是数组类型,并且就从 mysql 查询获取数据而言,它通常采用数组格式,尽管您添加了限制 1。

您可以做的一件事是尝试$recent_sale_id[0]以获得实际输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM