sql >> Database >  >> RDS >> Mysql

MySQL/PHP-uitvoerarray herhaalt de query en toont vervolgens het resultaat, hoe kan ik de query verwijderen?

Allereerst zou ik je aanraden om voorbereide verklaringen te gebruiken.

Ten tweede krijg je je query als een arraysleutel omdat het resultaat geen alias heeft, dus daarom zie je het in je array.

Ten derde heb je EXISTS niet echt nodig hier.

Verder heb je hier ook geen lus nodig:

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

Voorbereide verklaringen gebruiken:

$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. Python - MySQL-index automatiseren:parameter doorgeven

  2. Hoe psql interactief uit te voeren in de docker-container?

  3. ('De SQL bevat 0 parametermarkeringen, maar er zijn 50 parameters opgegeven', 'HY000') of TypeError:'tuple' object kan niet worden aangeroepen

  4. MySQLi heeft verklaringen opgesteld en VERVANG IN