php - Run MySQLi Prepared Statements Asynchronously -
i have following query used make graphs users. problem can overload server , can hanging queries.
i noticed answer goat allows asnchonous mysqli connections, uses basic query methodology:
how set maximum execution time mysql query?
however, want able use prepared statements security reasons. , documentation asynchronous queries limited.
how can integrate asynchronous mysqli using prepared statements return many rows can, within execution time limit?
$query = " select t1.day day, coalesce(t1.amount,0) earnings, coalesce(t2.amount,0) publisher_referral_earnings, coalesce(t3.amount,0) advertiser_referral_earnings ( select date_format(earning_created, '%c/%e/%y') day, sum(earning_amount) amount earnings earning_referral_id = 0 , (earning_created > date_sub(now(), interval 30 day)) , earning_account_id = ? group date(earning_created) ) t1 left join ( select date_format(ep.earning_created, '%c/%e/%y') day, (sum(ep.earning_amount) * rp.referral_share) amount earnings ep inner join referrals rp on ep.earning_referral_id = rp.referral_id ep.earning_referral_id > 0 , (ep.earning_created > date_sub(now(), interval 30 day)) , ep.earning_account_id = ? , rp.referral_type = 0 group date(ep.earning_created) ) t2 on t1.day = t2.day left join ( select date_format(ea.earning_created, '%c/%e/%y') day, (sum(ea.earning_amount) * ra.referral_share) amount earnings ea inner join referrals ra on ea.earning_referral_id = ra.referral_id ea.earning_referral_id > 0 , (ea.earning_created > date_sub(now(), interval 30 day)) , ea.earning_account_id = ? , ra.referral_type = 1 group date(ea.earning_created) ) t3 on t1.day = t3.day ";
and here's mysqli:
if ($statement = $mysqli->prepare($query)) { $statement->bind_param("iii", $account_id, $account_id, $account_id); $statement->execute(); $statement->store_result(); $timescales_total = $statement->num_rows; $statement->bind_result($timescale, $earnings, $publisher, $advertiser); $statement->free_result(); $statement->close(); }
Comments
Post a Comment