簡體   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