php - Commands out of sync while calling stored procedure Mysql -
i have 2 store procedures, needed page record (say select every next n records) first 1 select matching records is.
create procedure `trans_all`(in varphone varchar(15)) begin select loans.amt, loans.date, loans.pay_period, borrower.phone borrower_phone, borrower.name borrower_name, lender.phone lender_phone, lender.name lender_name, loans left join users borrower on borrower.id = loans.borrower_id left join users lender on lender.id = loans.lender_id (lender.phone = varphone) or (borrower.phone = varphone); end i count in php ;like this
$result = $mysqli->query(sprintf("call trans_all('%s')",$phone)); $num_recs = $result->num_rows; then needed select precise records do this
$result = $mysqli->query(sprintf("call trans_history('%s','%s','%s')",$phone,$start,$limit)); $row = $result->fetch_assoc(); // gives error commands out of sync; can't run command the second stored procedure is
create procedure `trans_history`(in varphone varchar(15), in page int, in items int) begin select loans.amt, loans.date, loans.pay_period, borrower.phone borrower_phone, borrower.name borrower_name, lender.phone lender_phone, lender.name lender_name, loans left join users borrower on borrower.id = loans.borrower_id left join users lender on lender.id = loans.lender_id (lender.phone = varphone) or (borrower.phone = varphone) limit page , items; end what cause error?
sps return second resultset contains status. need use next_result() before make subsequent queries.
$result = $mysqli->query(sprintf("call trans_all('%s')",$phone)); $num_recs = $result->num_rows; $result->close(); $mysqli->next_result(); // <- need before make query //then make call second sp $result = $mysqli->query(sprintf("call trans_history('%s','%s','%s')",$phone,$start,$limit)); $row = $result->fetch_assoc(); $result->close(); $mysqli->next_result();
Comments
Post a Comment