- 하면 WHMCS 데이터베이스의 각 행에 대한
- 에서 데이터를 가져 다소 이러한 작업을 수행하는 일괄 처리 스크립트를 가지고; 행 처리를
- 필요한 경우 데이터의 연결은 외부 MySQL 데이터베이스 (원격 서버) 지정된
- 페치 프로세스 관련 데이터
- 근접 먼 접속
- 업데이트 WHMCS 데이터베이스
- ...
WHMCS가 reso를 지정하지 않았으므로이 단계는 사소한 일이지만 단계 2.4의 첫 번째 행 이후에 중단됩니다. 두 번째 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 소스 코드를 수정할 수 없기 때문에 실행 가능한 옵션이 아닙니다.
나는 기꺼이 PDO (mysqli는 아니지만) 또는 다른 OO DB 클래스를 사용 하겠지만, 이것은 WHMCS (http://whmcs.com/)이며 내부적으로 어떻게 코드화되어 있는가. 두 번째 연결에 대해서는 모든 행마다 다를 수 있으며, 행이 동일 할 것이라는 보장이 없으므로 열어서 닫을 수 있습니다. 스크립트는 cron 작업 (php-cli)으로 실행되기 때문에 행에 둘 이상의 행이 동일한 연결이 이루어진 경우에도 모든 행에 대해 db 연결을 설정하는 데 추가 시간이 필요하지 않습니다. 그럼에도 불구하고 mysql_fetch_assoc ...으로 두 번째 반복문을 입력 할 때 여전히 제안하는 것이 실패한다. –
두 가지 일 수있다. 위에서 편집 한 초기 mysql_query()에 $ WHMCSConn을 지정해야한다. 둘째, $ 결과 변수를 다시 쓸 수 있습니까? 그렇다면, 위에서 편집 한 mysql_fetch_assoc() 부분에서 이름을 변경하십시오. –
지금이 질문을 닫을 것입니다. 결국 연결 정보를 찾을 수 있었고 계층 MySQL에 대한 새 연결을 연 후에 찾은 연결 정보를 사용하여 영구 연결을 사용하여 이전 기본 연결을 "복원"했습니다. 그것은 작동합니다 ... 귀하의 의견을 주셔서 감사합니다. –