Foreach循环在第一次迭代后停止工作

I try to mail all user also insert user to another table through foreach loop but for-each loop stop working after first iteration only first user insert into database and also mail sent be the first user I try too many ways to fix issue but I can't able to do.when I comment insert query and execute code it's run fine but when i try to run without comment insert query only first user insert how to fix. Please help me. Thanks in advance. Here is my php script:

foreach ($userrow as $row) {
   $message->setTo(array($row->email => $row->name));
   $numSent++;
   $mailer->send($message, $failedRecipients);
   $data = array('recipient' => $row->email, 'subject' => $safe->subject,);           
   Db::run()->$last_id = Db::run()->insert(self::elTable, $data);
}

Just delete Db::run()->$last_id = in last line.

Also it is good to use error-reporting function to see errors while executing scripts.