[英]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'。
我想知道两件事:
我究竟做错了什么? 我的代码似乎与其他正常工作的代码完全相同。
是否有一种更简单的方法可以将查询中的值获取到字段中,而不使用看起来会创建数组的函数? 有没有更合适的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.