2

ネイティブ PHP コードを PDO に変換したのは、ネイティブ コードと比較して安全性が高いためです。10 を超えるレコードを取得しようとすると、コードの実行に問題が発生します。私はいつもこの致命的なエラーを受け取りました:

致命的なエラー: 13 行目の /home/user/public_html/folder/pdo/user_hashing.php で最大実行時間が 30 秒を超えました。

これは私のコードです:

$pdo = Database::getInstance();
$stmt = $pdo->db->prepare("SELECT email, name, user_id FROM Users where page='' and reset='' order by user_id asc");
$stmt->execute();
while($row = $stmt->fetchObject())
{
    $id= $row->user_id;
    $str= $row->name."-".$row->user_id;
    $hash=md5($str) ;
    $stmt2 = $pdo->db->prepare("UPDATE Users SET request='1', reset='1', userhash=:userHash where page='' and user_id='$id' limit 1");           
    $stmt2->bindParam(':userHash', $hash);
    $stmt2->execute();
    unset($stmt2);
}
unset($pdo);

スクリプトが実行されるたびに、最大 10 件のレコードのみが取得および更新されます。その後、実行時エラーが発生します。

これを防ぐ他の方法はありますか?ネイティブ PHP を使用してこの種のエラーが発生したことはありません。また、php.ini でメモリ制限を調整するのは良くありません。それは私が以前から知っていたことです。

4

0 に答える 0