Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Das MySQL/PHP-Ausgabearray wiederholt die Abfrage und zeigt dann das Ergebnis an. Wie kann ich die Abfrage entfernen?

Zunächst einmal würde ich Ihnen empfehlen, vorbereitete Anweisungen zu verwenden.

Zweitens erhalten Sie Ihre Abfrage als Array-Schlüssel, da das Ergebnis keinen Alias ​​hat, weshalb Sie es in Ihrem Array sehen.

Drittens brauchen Sie EXISTS nicht wirklich hier.

Auch hier braucht man keine Schleife:

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

Vorbereitete Anweisungen verwenden:

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