したがって、ユーザー名の形式のフラットファイルデータベースがあります:$ SHA $ 1010101010101010 $ 010110010101010010101010100101010101001010:255.255.255.255:1342078265214
新しい行の各レコード...約5000行以上..mysqlテーブルにインポートしたいと思います。通常はphpmyadminと「ファイルインポート」を使用してこれを行いますが、今度はphpを使用してftp経由でデータベースをダウンロードし、既存のテーブルデータをクリーンアップして更新されたデータベースをアップロードすることでこのプロセスを自動化します。
id(AUTH INCREMENT) | username | password | ip | lastlogin
以下に示すスクリプトの大部分は機能します。phpはエラーを生成しますが、「PHP致命的エラー:最大実行時間が30秒を超えました」この時間を増やすことができると思いますが、リモートサーバーでは疑わしいです。許可されるので、これを行うためのより良い方法を見つける必要があります。
そのタイムアウトの前にデータベースに挿入されるのは約1000レコードのみです...
私が使用しているコードは以下のとおりです。今のところ、私はphpのプロではなく、これは主にまとめられ、一緒に石畳にされています。このような挿入を行うのは悪いことだと聞いているので、これをより効率的にするための助けを探しています。そして、ローカルPCでこのスクリプトを実行すると、多くのディスクスクラッチが発生するため、非常に悪い音に聞こえます。つまり、このような一見単純なタスクを実行するためにhddを強制終了する必要があるのはなぜですか。
<?php
require ('Connections/local.php');
$wx = array_map('trim',file("auths.db"));
$username = array();
$password = array();
$ip = array();
$lastlogin = array();
foreach($wx as $i => $line) {
$tmp = array_filter(explode(':',$line));
$username[$i] = $tmp[0];
$password[$i] = $tmp[1];
$ip[$i] = $tmp[2];
$lastlogin[$i] = $tmp[3];
mysql_query("INSERT INTO authdb (username,password,ip,lastlogin) VALUES('$username[$i]', '$password[$i]', '$ip[$i]', '$lastlogin[$i]') ") or die(mysql_error());
}
?>