우리는 완벽하게 작동하는 PHP emailer를 만들고 있습니다.MYSQL SELECT with PAUSE
데이터베이스에서 모든 사용자를 선택하고 이메일을 보내면 좋습니다.
하지만 보내야 할 엄청난 양의 이메일이 있었기 때문에 [1000]이 (가)있는 이메일 트랜잭션을 시작하고 일시 중지하여 서버에 과부하가 걸리지 않도록하십시오.
예 :
SELECT : 1000;
PAUSE MYSQL
SELECT ANOTHER 1000;
PAUSE MYSQL
기타. ..
나는 & 롤백 기능을 COMMIT 시작 TRANSACTION에 대해 읽고, 나는이 권리를 구현 생각
사람이 ROLLBACK 전에 거래를 백초의 일시 중지를 포함하는 데 도움이 수 있습니까? 내가 지금까지 [접두사 코드]를 가지고 내가 무엇을 해야할지 모르겠어요
..
..
$ max = 1000;
$ send = 0;
$ rollback = false;
mysql_query ('START TRANSACTION;');
$ query = mysql_query ("SELECT DISTINCT mail_id, customers_email_address 뉴스 레터 WHERE ORDER BY mail_id ASC");
동안 ($ 결과 =로 MYSQL_ASSOC ($ 쿼리) {
경우 ($ 롤백 == TRUE) {= 거짓
$ 롤백,
는 mysql_query (" ROLLBACK; ");
}
$ 보내 ++ [이 ------ 스크립트는 이메일 -----를 보내]
경우 ($ 최대 == $ 보내기) {
는 mysql_query ("COMMIT;");
$ rollback = true;
}
}
건배 제이
당신은 트랜잭션을 사용하는 것이 이해가되지 않도록 데이터베이스의 정보를 수정하지 않습니다. 어떤 이메일을 누가 데이터베이스에 보냈는지 추적 할 계획입니까? – jeroen
제로 엔이 말한 바. 또한 새로운 코드에서 mysql_ 함수 사용을 중단하십시오! – Kermit
PHP의 mysql_xxx() 함수는 더 이상 쓸데없고 안전하지 않으며 더 이상 사용되지 않습니다. 가능한 한 빨리'mysqli_xx()'함수 나 PDO 라이브러리로 전환해야한다. 또한 참조하십시오. http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – SDC