だからここに私がやっていることがあります。
- for ループで 1 行ずつ読み取ります。(共有ホスティングを使用しているため、一度にすべてを実行するとリソースが消費されるためです。) 2. 変数に適切なフィールド データを取得します。3.抽出されたフィールドに依存する必要なデータを操作します。4.filed=extracted data である新しいフィールドを更新します。
さらに、現在の位置をファイルに追加して、スクリプトが次に実行されるときにそこから続行できるようにします。
問題 : 機能していないようです。counter.txt は 3 ~ 4 のような値を取得しますが、そこに存在するだけです。私のデータベースには100万行ほどあります。
私のコード:
require ("dbconnect.php");
header("refresh:29;url=process.php"); // so it doesnt ever end. I cant use max_execution_time here for some reason.
$count = mysql_query("SELECT COUNT(*) FROM collection ");
$data = mysql_fetch_array($count);
$count = $data[0];
echo $count;
$countfile = fopen("counter.txt", "r");
$counter = fgets($countfile);
echo fgets($countfile);
while (fgets($countfile) <= $count)
{
$i = fgets($countfile);
$takeword = mysql_query("SELECT word FROM collection WHERE id='$i'") or die();
$wd = mysql_fetch_array($takeword);
$data = $wd[0];
$d1 = hash($algorith='md2',$data);
$d2 = hash($algorith='md4',$data);
$write = mysql_query("UPDATE collection SET md2='$d1', md4='$d2' WHERE id='$i'") or die(mysql_error());
//opens, empties and write the new pointer to the file. closes, and open the file in readmode for the next read at the loop.
$counts = fopen("counter.txt", "w+");
fwrite($counts, $counter + 1);
fclose($counts);
$countfile = fopen("counter.txt", "r");
}
任意の助けをいただければ幸いです:)コードの最適化を探し、エラーを殺します。提案はそうするでしょう.:)