MySQL/PHP 输出数组重复查询然后显示结果,如何删除查询? [复制]

Posted

技术标签:

【中文标题】MySQL/PHP 输出数组重复查询然后显示结果,如何删除查询? [复制]【英文标题】:MySQL/PHP output array repeats the query and then shows result, how can I remove the query? [duplicate] 【发布时间】:2020-01-28 21:57:15 【问题描述】:

我有一个查询来检查该值是否存在于我的表中。然后它将结果存储在一个数组中并以 JSON 格式输出。但我的回答总是: ["SELECT EXISTS(SELECT * FROM wp_woocommerce_order_items WHERE order_id = $sdata)":"1"; 我只想让它输出结果(0 或 1) 这是我的代码:

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) 
    die("Connection failed: " . $conn->connect_error);



$query = "SELECT EXISTS(SELECT * FROM wp_woocommerce_order_items WHERE order_id = $sdata)";
if ($result = mysqli_query($conn, $query)) 

    $newArr = array();
    /* fetch associative array */
    while ($db_field = mysqli_fetch_assoc($result)) 
      $newArr[] = $db_field;
   

    echo json_encode($newArr); // get all products in json format.    


$conn->close();
?>

【问题讨论】:

请显示 vardump($db_field)。我认为数组中有保存的查询。 How to get the error message in MySQLi? 什么意思“获取所有json格式的产品。”?您要返回所有记录还是只返回布尔值 true 或 false? @Dharman 是真还是假 @DuhVir 每次在上面的代码中提到它时,我都没有任何字段 【参考方案1】:

首先,我建议你使用准备好的语句。

其次,您将查询作为数组键获取,因为结果没有别名,这就是您在数组中看到它的原因。

第三,这里不需要EXISTS

第四,这里也不需要循环:

$query = "SELECT COUNT(*) FROM wp_woocommerce_order_items as item_exists WHERE order_id = $sdata";
if ($result = mysqli_query($conn, $query)) 

    $newArr = array();
    $value = mysqli_fetch_object($result);
    $newArr[] = (bool) $value->item_exists;

    echo json_encode($newArr); // get all products in json format.    

使用准备好的语句:

$stmt = $mysqli->prepare('SELECT COUNT(*) as item_exists FROM wp_woocommerce_order_items WHERE order_id = ?');
$stmt->bind_param("i", $sdata);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$stmt->close();

echo json_encode((bool) $row['item_exists']);

【讨论】:

第一个我总是得到错误的响应,无论该值是否存在于表中 @getNordic 因为我没有看到代码的其他部分 - 只需调试结果,检查您的 $sdata 并给我们一些提示。

以上是关于MySQL/PHP 输出数组重复查询然后显示结果,如何删除查询? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

jsp 中如何将sql查询结果以数组形式显示出来

请教大家!mysql查询结果,过滤重复数据?

mysql php thinkphp 随机选出不重复的数据

回显mysql_query的所有结果[重复]

PHP:输出以前的 MySQL 查询 [重复]

java问题 自定义字符串数组, 里面存了同学的姓名,要求随机显示数组中的姓名且不重复~求各位大