У меня этот код. Все работает (и правильно), если у меня нет вызова хранимой процедуры. Но вызов хранимой процедуры по какой-то причине блокирует следующий оператор. Как это исправить?Сохраненная процедура PHP - не может сделать другое заявление после этого
// GET ID
$stmt = $db->query("CALL GetNewOrderNo");
while($row = $stmt->fetch_assoc()) {
$orderid = $row["OrderId"];
}
$stmt->close();
// Add ID
$upd = $db->prepare("UPDATE orders SET orderid=? WHERE customer=? AND info_date=? AND orderid='' LIMIT 1");
$upd->bind_param("ssi", $orderid, $customer, $datetime);
$upd->execute();
Итак ... вы закроете заявление? '$ stmt-> close()'? 'PDOStatemement :: close()' не существует. Вы можете закрыть курсор, который является «PDOStatement :: closeCursor()». –
Обычно нет, это была просто попытка - не имеет никакого значения :-) –
@ Zeratops Это не PDO, это MySQLi. 'bind_param();' является функцией MySQLi, и вы можете сказать по синтаксису ;-) Так что '$ stmt-> close()' существует для этого API. – Qirel