diff options
| author | Andreas Fischer <bantu@phpbb.com> | 2013-03-29 16:44:29 +0100 | 
|---|---|---|
| committer | Andreas Fischer <bantu@phpbb.com> | 2013-03-29 16:53:50 +0100 | 
| commit | b156b22f35eab64a9780167bfe8d515f2e2a8480 (patch) | |
| tree | bfe516428772853033370a739aa151a5becee649 /phpBB | |
| parent | 6910d441546f5213eab11b2329b49e5a6626ad67 (diff) | |
| download | forums-b156b22f35eab64a9780167bfe8d515f2e2a8480.tar forums-b156b22f35eab64a9780167bfe8d515f2e2a8480.tar.gz forums-b156b22f35eab64a9780167bfe8d515f2e2a8480.tar.bz2 forums-b156b22f35eab64a9780167bfe8d515f2e2a8480.tar.xz forums-b156b22f35eab64a9780167bfe8d515f2e2a8480.zip  | |
[ticket/11403] Use an instance of phpbb_db_sql_insert_buffer instead.
PHPBB3-11403
Diffstat (limited to 'phpBB')
| -rw-r--r-- | phpBB/includes/notification/manager.php | 19 | 
1 files changed, 5 insertions, 14 deletions
diff --git a/phpBB/includes/notification/manager.php b/phpBB/includes/notification/manager.php index ee81cc0f7c..9eceeb753a 100644 --- a/phpBB/includes/notification/manager.php +++ b/phpBB/includes/notification/manager.php @@ -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,15 +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); - -			// Flush to DB if $new_rows is big enough. -			if (sizeof($new_rows) > 500) -			{ -				$this->db->sql_multi_insert($this->notifications_table, $new_rows); -				$new_rows = array(); -			} +			// 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()); @@ -455,10 +449,7 @@ class phpbb_notification_manager  			}  		} -		if (!empty($new_rows)) -		{ -			$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);  | 
