1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-01-19 15:17:16 +01:00

Merge pull request #1306 from bantu/ticket/11403

[ticket/11403] phpbb_notification_manager: Use SQL multi insert in batch...
This commit is contained in:
Nils Adermann 2013-03-29 08:56:10 -07:00
commit fe93ceb20e

View File

@ -390,7 +390,6 @@ class phpbb_notification_manager
$user_ids = array();
$notification_objects = $notification_methods = array();
$new_rows = array();
// Never send notifications to the anonymous user!
unset($notify_users[ANONYMOUS]);
@ -420,6 +419,8 @@ class phpbb_notification_manager
$pre_create_data = $notification->pre_create_insert_array($data, $notify_users);
unset($notification);
$insert_buffer = new phpbb_db_sql_insert_buffer($this->db, $this->notifications_table);
// Go through each user so we can insert a row in the DB and then notify them by their desired means
foreach ($notify_users as $user => $methods)
{
@ -427,8 +428,8 @@ class phpbb_notification_manager
$notification->user_id = (int) $user;
// Store the creation array in our new rows that will be inserted later
$new_rows[] = $notification->create_insert_array($data, $pre_create_data);
// Insert notification row using buffer.
$insert_buffer->insert($notification->create_insert_array($data, $pre_create_data));
// Users are needed to send notifications
$user_ids = array_merge($user_ids, $notification->users_to_query());
@ -448,8 +449,7 @@ class phpbb_notification_manager
}
}
// insert into the db
$this->db->sql_multi_insert($this->notifications_table, $new_rows);
$insert_buffer->flush();
// We need to load all of the users to send notifications
$this->user_loader->load_users($user_ids);