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

MySQL/PHP output array gentager forespørgslen og viser derefter resultatet, hvordan kan jeg fjerne forespørgslen?

Først og fremmest vil jeg anbefale dig at bruge forberedte udsagn.

For det andet får du din forespørgsel som en array-nøgle, fordi resultatet ikke har noget alias, så det er derfor, du ser det i dit array.

For det tredje har du ikke rigtig brug for EXISTS her.

For det andet behøver du heller ikke en loop her:

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

Brug af forberedte udsagn:

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




  1. Hvordan kan jeg fortælle PostgreSQL ikke at afbryde hele transaktionen, når en enkelt begrænsning har fejlet?

  2. Hvorfor returnerer de berørte rækker 0, mens opdatering/sletning lykkedes?

  3. Slip Postgres LOCK manuelt

  4. Vil du slette flere rækker med PDO og afkrydsningsfelter ved hjælp af forberedte udsagn?