Browse Source

! delete from multiple tables in one query wrong syntax and not working well with (at least) SQlite, not tested on PostgreSQL

emanuele 13 years ago
parent
commit
28293e9d9a
3 changed files with 31 additions and 5 deletions
  1. 8 1
      Sources/ManageBans.php
  2. 7 2
      Sources/ManageMaintenance.php
  3. 16 2
      Sources/ManagePermissions.php

+ 8 - 1
Sources/ManageBans.php

@@ -111,7 +111,14 @@ function BanList()
 
 		// Unban them all!
 		$smcFunc['db_query']('', '
-			DELETE FROM {db_prefix}ban_groups, {db_prefix}ban_items
+			DELETE FROM {db_prefix}ban_groups
+			WHERE id_ban_group IN ({array_int:ban_list})',
+			array(
+				'ban_list' => $_POST['remove'],
+			)
+		);
+		$smcFunc['db_query']('', '
+			DELETE FROM {db_prefix}ban_items
 			WHERE id_ban_group IN ({array_int:ban_list})',
 			array(
 				'ban_list' => $_POST['remove'],

+ 7 - 2
Sources/ManageMaintenance.php

@@ -268,8 +268,13 @@ function MaintainEmptyUnimportantLogs()
 
 	// Clear out the ban, SPAM, and karma logs.
 	$smcFunc['db_query']('', '
-		DELETE FROM {db_prefix}log_banned, {db_prefix}log_online,
-			{db_prefix}log_floodcontrol, {db_prefix}log_karma');
+		DELETE FROM {db_prefix}log_banned');
+	$smcFunc['db_query']('', '
+		DELETE FROM {db_prefix}log_online');
+	$smcFunc['db_query']('', '
+		DELETE FROM {db_prefix}log_floodcontrol');
+	$smcFunc['db_query']('', '
+		DELETE FROM {db_prefix}log_karma');
 
 	// Start id_error back at 0 and dump the error log.
 	$smcFunc['db_query']('truncate_table', '

+ 16 - 2
Sources/ManagePermissions.php

@@ -1001,7 +1001,14 @@ function GeneralPermissionSettings($return_config = false)
 		if (empty($modSettings['permission_enable_deny']))
 		{
 			$smcFunc['db_query']('', '
-				DELETE FROM {db_prefix}permissions, {db_prefix}board_permissions
+				DELETE FROM {db_prefix}board_permissions
+				WHERE add_deny = {int:denied}',
+				array(
+					'denied' => 0,
+				)
+			);
+			$smcFunc['db_query']('', '
+				DELETE FROM {db_prefix}permissions
 				WHERE add_deny = {int:denied}',
 				array(
 					'denied' => 0,
@@ -1028,7 +1035,14 @@ function GeneralPermissionSettings($return_config = false)
 
 			// Remove'em.
 			$smcFunc['db_query']('', '
-				DELETE FROM {db_prefix}permissions, {db_prefix}board_permissions
+				DELETE FROM {db_prefix}permissions
+				WHERE id_group IN ({array_int:post_group_list})',
+				array(
+					'post_group_list' => $post_groups,
+				)
+			);
+			$smcFunc['db_query']('', '
+				DELETE FROM {db_prefix}board_permissions
 				WHERE id_group IN ({array_int:post_group_list})',
 				array(
 					'post_group_list' => $post_groups,