sql >> データベース >  >> RDS >> Mysql

ブラウザのタイムアウトなしでPHPで大量のデータを処理する

    2つのスクリプトを作成します:

    ファイルindex.php

    <iframe src="job.php" frameborder="0" scrolling="no" width="1" height="1"></iframe>
    <script type="text/javascript">
        function progress(percent){
            document.getElementById('done').innerHTML=percent+'%';
        }
    </script><div id="done">0%</div>
    

    ファイルjob.php

    set_time_limit(0);                   // ignore php timeout
    ignore_user_abort(true);             // keep on going even if user pulls the plug*
    while(ob_get_level())ob_end_clean(); // remove output buffers
    ob_implicit_flush(true);             // output stuff directly
    // * This absolutely depends on whether you want the user to stop the process
    //   or not. For example: You might create a stop button in index.php like so:
    //     <a href="javascript:window.frames[0].location='';">Stop!</a>
    //     <a href="javascript:window.frames[0].location='job.php';">Start</a>
    // But of course, you will need that line of code commented out for this feature to work.
    
    function progress($percent){
        echo '<script type="text/javascript">parent.progress('.$percent.');</script>';
    }
    
    $total=count($mobiles);
    echo '<!DOCTYPE html><html><head></head><body>'; // webkit hotfix
    foreach($mobiles as $i=>$mobile){
        // send sms
        progress($i/$total*100);
    }
    progress(100);
    echo '</body></html>'; // webkit hotfix
    


    1. SQL Server(T-SQL)でデータベースメールの構成設定を変更する方法

    2. 動的SQLの結果はSQLストアドプロシージャの一時テーブルになります

    3. pgAuditを使用したPostgreSQLの監査

    4. MySQLデータ型:使用するデータ型とその方法を知っている