Mysql
 sql >> Database >  >> RDS >> Mysql

L'array di output MySQL/PHP ripete la query e quindi mostra il risultato, come posso rimuovere la query?

Prima di tutto, ti consiglierei di utilizzare le dichiarazioni preparate.

In secondo luogo, ottieni la tua query come chiave di matrice perché il risultato non ha alias, ecco perché la vedi nell'array.

Terzo, non hai davvero bisogno di EXISTS qui.

Inoltre, non hai bisogno di un ciclo anche qui:

$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.    
}

Utilizzando dichiarazioni preparate:

$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']);