sql >> Base de Datos >  >> RDS >> Mysql

La matriz de salida MySQL/PHP repite la consulta y luego muestra el resultado, ¿cómo puedo eliminar la consulta?

En primer lugar, le recomendaría que use declaraciones preparadas.

En segundo lugar, obtiene su consulta como una clave de matriz porque el resultado no tiene alias, por eso la ve en su matriz.

Tercero, realmente no necesitas EXISTS aquí.

En cuarto lugar, no necesita un bucle aquí también:

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

Usando declaraciones preparadas:

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