【问题标题】:How do I get the result of a "SELECT" query and store it in a variable如何获取“SELECT”查询的结果并将其存储在变量中
【发布时间】:2016-07-01 01:39:16
【问题描述】:

我的代码中有一个查询,看起来像这样

$edi_transaction_id = mysqli_query($conn, "SELECT a.edi_transaction_id FROM edi_transaction_detail a JOIN reference_number b JOIN edi_transaction c WHERE a.asn_number = '$asn_number' AND a.edi_transaction_id = c.edi_transaction_id LIMIT 1");

我想获取该查询的值并将其存储在 $edi_transaction_id 变量中。我已经认为这会运行,因为直接在 mysql 数据库上完成时它可以正常工作,但是当我将它集成到我的代码中时,这是错误

<b>Catchable fatal error</b>:  Object of class mysqli_result could not be converted to string in <b>/home/ationgzon/WebService/edi_864_824_files.php</b> on line <b>53</b><br />

这是 edi_864_824_files.php 中的第 53 行

mysqli_query($conn, "INSERT INTO `edi_864_824`(`edi_transaction_id`, `trading_partner`, `trans_date`, `issue`, `reference_number_id`) VALUES ($edi_transaction_id, '$trading_partner', '$trans_date', '$message', $reference_number_id)");

我该怎么做才能将它插入到我的数据库中。

【问题讨论】:

标签: php mysql


【解决方案1】:

试试这个方法

    $edi_transaction_id = mysqli_query($conn, "SELECT a.edi_transaction_id FROM edi_transaction_detail a JOIN reference_number b JOIN edi_transaction c WHERE a.asn_number = '$asn_number' AND a.edi_transaction_id = c.edi_transaction_id LIMIT 1");
    while($row = $edi_transaction_id->fetch_array(MYSQLI_NUM)){
    $edit_t_detail = $row[0];
    }
mysqli_query($conn, "INSERT INTO `edi_864_824`(`$edit_t_detail`, `trading_partner`, `trans_date`, `issue`, `reference_number_id`) VALUES ($edi_transaction_id, '$trading_partner', '$trans_date', '$message', $reference_number_id)");

这里,$edi_transaction_id 是 'mysqli_result object' 类型,因此您无法将其转换为字符串

【讨论】:

    【解决方案2】:

    尝试使用 mysqli_fetch_array 代替,完整的文档可在此处获得:http://php.net/manual/en/mysqli-result.fetch-array.php

    【讨论】:

    • 当您阅读文档时,您会发现您需要result object。就目前而言,您的回答并不能解决问题。
    猜你喜欢
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 2014-12-23
    • 2014-04-24
    相关资源
    最近更新 更多