У нас есть сценарий пакетной обработки, который выполняет несколько этих операций
- извлечение данных из базы данных WHMCS
- для каждой строки;если строки нуждаются в обработке
- подключиться к указанной внешней базе данных MySQL (удаленный сервер)
- извлечь и обработать связанные данные
- закрыть удаленное соединение
- обновить базу данных WHMCS
- ...
Теперь, хотя это тривиально, оно разбивается после первой строки на шаге 2.4, поскольку WHMCS не указывает ссылку на ресурс дляэто запросы, и установление второго соединения mysql нарушает стандартные запросы WHMCS. простой код показывает, что я имею в виду:
$result = mysql_query("SELECT * FROM sometable WHERE condition");
while ($row = mysql_fetch_assoc($result)) {
$conn = mysql_connect($row['mysql_host'], $row['mysql_user'], $row['mysql_pass']);
...
mysql_close($conn);
mysql_query("UPDATE sometable SET lastrun=NOW() WHERE id={$row['id']}");
}
Второй вызов mysql_query
, а также вызов mysql_fetch_assoc
на второй итерации завершатся неудачно.
Есть ли способ «восстановить» предыдущее соединение, чтобы оно не разрывалось?Пожалуйста, не предлагайте использовать ссылку на ресурс $whmcsmysql
везде, это нереально, так как я не могу изменить зашифрованный исходный код WHMCS для этого и т. Д.