mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-13 04:04:12 +02:00
- store sql_layer directly within the layer itself
- new method sql_multi_insert to circumvent db-specific hacks (hopefully not introduced any parsing errors) git-svn-id: file:///svn/phpbb/trunk@6497 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
@@ -133,7 +133,7 @@ class acp_database
|
||||
$sql_data .= "# DATE : " . gmdate("d-m-Y H:i:s", $time) . " GMT\n";
|
||||
$sql_data .= "#\n";
|
||||
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'sqlite':
|
||||
$sql_data .= "BEGIN TRANSACTION;\n";
|
||||
@@ -151,7 +151,7 @@ class acp_database
|
||||
break;
|
||||
}
|
||||
|
||||
if ($structure && SQL_LAYER == 'firebird')
|
||||
if ($structure && $db->sql_layer == 'firebird')
|
||||
{
|
||||
$sql = 'SELECT RDB$FUNCTION_NAME, RDB$DESCRIPTION
|
||||
FROM RDB$FUNCTIONS
|
||||
@@ -181,7 +181,7 @@ class acp_database
|
||||
// Get the table structure
|
||||
if ($structure)
|
||||
{
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'mysqli':
|
||||
case 'mysql4':
|
||||
@@ -224,27 +224,12 @@ class acp_database
|
||||
}
|
||||
$sql_data .= $this->get_table_structure($table_name);
|
||||
}
|
||||
// We might wanna empty out all that junk :D
|
||||
else
|
||||
{
|
||||
switch (SQL_LAYER)
|
||||
{
|
||||
case 'mysqli':
|
||||
case 'mysql4':
|
||||
case 'mysql':
|
||||
case 'mssql':
|
||||
case 'mssql_odbc':
|
||||
case 'oracle':
|
||||
case 'postgres':
|
||||
case 'firebird':
|
||||
$sql_data .= 'TRUNCATE TABLE ' . $table_name . ";\n";
|
||||
break;
|
||||
|
||||
case 'sqlite':
|
||||
$sql_data .= 'DELETE FROM ' . $table_name . ";\n";
|
||||
break;
|
||||
}
|
||||
// We might wanna empty out all that junk :D
|
||||
$sql_data .= (($db->sql_layer == 'sqlite') ? 'DELETE FROM ' : 'TRUNCATE TABLE ') . $table_name . ";\n";
|
||||
}
|
||||
|
||||
// Now write the data for the first time. :)
|
||||
if ($store == true)
|
||||
{
|
||||
@@ -270,7 +255,7 @@ class acp_database
|
||||
{
|
||||
$sql_data .= "\n";
|
||||
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'mysqli':
|
||||
|
||||
@@ -1016,7 +1001,7 @@ class acp_database
|
||||
}
|
||||
}
|
||||
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'sqlite':
|
||||
case 'postgres':
|
||||
@@ -1056,7 +1041,7 @@ class acp_database
|
||||
|
||||
default:
|
||||
$tables = array();
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'sqlite':
|
||||
$sql = "SELECT name
|
||||
@@ -1247,13 +1232,13 @@ class acp_database
|
||||
remove_remarks($data);
|
||||
|
||||
// SQLite gets improved performance when you shove all of these disk write queries at once :D
|
||||
if (SQL_LAYER == 'sqlite')
|
||||
if ($db->sql_layer == 'sqlite')
|
||||
{
|
||||
$db->sql_query($data);
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'firebird':
|
||||
$delim = ';;';
|
||||
@@ -1351,7 +1336,7 @@ class acp_database
|
||||
|
||||
$sql_data = '';
|
||||
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'mysqli':
|
||||
case 'mysql4':
|
||||
|
@@ -210,34 +210,8 @@ class acp_forums
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
// Now insert the data
|
||||
switch (SQL_LAYER)
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
if (sizeof($users_sql_ary))
|
||||
{
|
||||
$db->sql_query('INSERT INTO ' . ACL_USERS_TABLE . ' ' . $db->sql_build_array('MULTI_INSERT', $users_sql_ary));
|
||||
}
|
||||
|
||||
if (sizeof($groups_sql_ary))
|
||||
{
|
||||
$db->sql_query('INSERT INTO ' . ACL_GROUPS_TABLE . ' ' . $db->sql_build_array('MULTI_INSERT', $groups_sql_ary));
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
foreach ($users_sql_ary as $ary)
|
||||
{
|
||||
$db->sql_query('INSERT INTO ' . ACL_USERS_TABLE . ' ' . $db->sql_build_array('INSERT', $ary));
|
||||
}
|
||||
|
||||
foreach ($groups_sql_ary as $ary)
|
||||
{
|
||||
$db->sql_query('INSERT INTO ' . ACL_GROUPS_TABLE . ' ' . $db->sql_build_array('INSERT', $ary));
|
||||
}
|
||||
break;
|
||||
}
|
||||
$db->sql_multi_insert(ACL_USERS_TABLE, $users_sql_ary);
|
||||
$db->sql_multi_insert(ACL_GROUPS_TABLE, $groups_sql_ary);
|
||||
}
|
||||
|
||||
$auth->acl_clear_prefetch();
|
||||
@@ -1408,7 +1382,7 @@ class acp_forums
|
||||
}
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
|
@@ -368,24 +368,7 @@ class acp_groups
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
// Now insert the data
|
||||
if (sizeof($groups_sql_ary))
|
||||
{
|
||||
switch (SQL_LAYER)
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
$db->sql_query('INSERT INTO ' . ACL_GROUPS_TABLE . ' ' . $db->sql_build_array('MULTI_INSERT', $groups_sql_ary));
|
||||
break;
|
||||
|
||||
default:
|
||||
foreach ($groups_sql_ary as $ary)
|
||||
{
|
||||
$db->sql_query('INSERT INTO ' . ACL_GROUPS_TABLE . ' ' . $db->sql_build_array('INSERT', $ary));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
$db->sql_multi_insert(ACL_GROUPS_TABLE, $groups_sql_ary);
|
||||
|
||||
$auth->acl_clear_prefetch();
|
||||
}
|
||||
|
@@ -311,7 +311,7 @@ class acp_icons
|
||||
// The user has already selected a smilies_pak file
|
||||
if ($current == 'delete')
|
||||
{
|
||||
$db->sql_query(((SQL_LAYER != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . $table);
|
||||
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . $table);
|
||||
|
||||
switch ($mode)
|
||||
{
|
||||
|
@@ -149,7 +149,7 @@ class acp_main
|
||||
break;
|
||||
|
||||
case 'db_track':
|
||||
$db->sql_query(((SQL_LAYER != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . TOPICS_POSTED_TABLE);
|
||||
$db->sql_query((($db->sql_layer != 'sqlite') ? 'TRUNCATE TABLE ' : 'DELETE FROM ') . TOPICS_POSTED_TABLE);
|
||||
|
||||
// This can get really nasty... therefore we only do the last six months
|
||||
$get_from_time = time() - (6 * 4 * 7 * 24 * 60 * 60);
|
||||
@@ -204,24 +204,7 @@ class acp_main
|
||||
}
|
||||
unset($posted);
|
||||
|
||||
if (sizeof($sql_ary))
|
||||
{
|
||||
switch (SQL_LAYER)
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
$db->sql_query('INSERT INTO ' . TOPICS_POSTED_TABLE . ' ' . $db->sql_build_array('MULTI_INSERT', $sql_ary));
|
||||
break;
|
||||
|
||||
default:
|
||||
foreach ($sql_ary as $ary)
|
||||
{
|
||||
$db->sql_query('INSERT INTO ' . TOPICS_POSTED_TABLE . ' ' . $db->sql_build_array('INSERT', $ary));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
$db->sql_multi_insert(TOPICS_POSTED_TABLE, $sql_ary);
|
||||
}
|
||||
|
||||
add_log('admin', 'LOG_RESYNC_POST_MARKING');
|
||||
|
@@ -107,7 +107,7 @@ class acp_profile
|
||||
$db->sql_query('DELETE FROM ' . PROFILE_FIELDS_LANG_TABLE . " WHERE field_id = $field_id");
|
||||
$db->sql_query('DELETE FROM ' . PROFILE_LANG_TABLE . " WHERE field_id = $field_id");
|
||||
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'sqlite':
|
||||
$sql = "SELECT sql
|
||||
@@ -1236,7 +1236,7 @@ class acp_profile
|
||||
{
|
||||
global $db;
|
||||
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
|
@@ -202,7 +202,7 @@ class acp_reasons
|
||||
$other_reason_id = (int) $db->sql_fetchfield('reason_id');
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
// The ugly one!
|
||||
case 'mysqli':
|
||||
|
@@ -1040,7 +1040,7 @@ class acp_users
|
||||
// Update Custom Fields
|
||||
if (sizeof($cp_data))
|
||||
{
|
||||
switch (SQL_LAYER)
|
||||
switch ($db->sql_layer)
|
||||
{
|
||||
case 'oracle':
|
||||
case 'firebird':
|
||||
@@ -1944,7 +1944,7 @@ class acp_users
|
||||
FROM ' . ACL_OPTIONS_TABLE . "
|
||||
WHERE auth_option LIKE '%\_'";
|
||||
|
||||
if (SQL_LAYER == 'mssql' || SQL_LAYER == 'mssql_odbc')
|
||||
if ($db->sql_layer == 'mssql' || $db->sql_layer == 'mssql_odbc')
|
||||
{
|
||||
$sql .= " ESCAPE '\\'";
|
||||
}
|
||||
@@ -1964,7 +1964,7 @@ class acp_users
|
||||
FROM ' . ACL_OPTIONS_TABLE . "
|
||||
WHERE auth_option LIKE '%\_'";
|
||||
|
||||
if (SQL_LAYER == 'mssql' || SQL_LAYER == 'mssql_odbc')
|
||||
if ($db->sql_layer == 'mssql' || $db->sql_layer == 'mssql_odbc')
|
||||
{
|
||||
$sql .= " ESCAPE '\\'";
|
||||
}
|
||||
|
@@ -724,24 +724,7 @@ class auth_admin extends auth
|
||||
}
|
||||
}
|
||||
|
||||
if (sizeof($sql_ary))
|
||||
{
|
||||
switch (SQL_LAYER)
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
$db->sql_query('INSERT INTO ' . ACL_OPTIONS_TABLE . ' ' . $db->sql_build_array('MULTI_INSERT', $sql_ary));
|
||||
break;
|
||||
|
||||
default:
|
||||
foreach ($sql_ary as $ary)
|
||||
{
|
||||
$db->sql_query('INSERT INTO ' . ACL_OPTIONS_TABLE . ' ' . $db->sql_build_array('INSERT', $ary));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
$db->sql_multi_insert(ACL_OPTIONS_TABLE, $sql_ary);
|
||||
|
||||
$cache->destroy('acl_options');
|
||||
$this->acl_clear_prefetch();
|
||||
@@ -874,24 +857,7 @@ class auth_admin extends auth
|
||||
}
|
||||
}
|
||||
|
||||
if (sizeof($sql_ary))
|
||||
{
|
||||
switch (SQL_LAYER)
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
$db->sql_query("INSERT INTO $table " . $db->sql_build_array('MULTI_INSERT', $sql_ary));
|
||||
break;
|
||||
|
||||
default:
|
||||
foreach ($sql_ary as $ary)
|
||||
{
|
||||
$db->sql_query("INSERT INTO $table " . $db->sql_build_array('INSERT', $ary));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
$db->sql_multi_insert($table, $sql_ary);
|
||||
|
||||
if ($clear_prefetch)
|
||||
{
|
||||
@@ -956,21 +922,8 @@ class auth_admin extends auth
|
||||
WHERE role_id = ' . $role_id;
|
||||
$db->sql_query($sql);
|
||||
|
||||
switch (SQL_LAYER)
|
||||
{
|
||||
case 'mysql':
|
||||
case 'mysql4':
|
||||
case 'mysqli':
|
||||
$db->sql_query('INSERT INTO ' . ACL_ROLES_DATA_TABLE . ' ' . $db->sql_build_array('MULTI_INSERT', $sql_ary));
|
||||
break;
|
||||
|
||||
default:
|
||||
foreach ($sql_ary as $ary)
|
||||
{
|
||||
$db->sql_query('INSERT INTO ' . ACL_ROLES_DATA_TABLE . ' ' . $db->sql_build_array('INSERT', $ary));
|
||||
}
|
||||
break;
|
||||
}
|
||||
// Now insert the new values
|
||||
$db->sql_multi_insert(ACL_ROLES_DATA_TABLE, $sql_ary);
|
||||
|
||||
$this->acl_clear_prefetch();
|
||||
}
|
||||
@@ -1010,7 +963,7 @@ class auth_admin extends auth
|
||||
$sql = 'SELECT auth_option, auth_option_id
|
||||
FROM ' . ACL_OPTIONS_TABLE . "
|
||||
WHERE auth_option LIKE '" . $db->sql_escape(str_replace('_', "\_", $permission_type)) . "%'";
|
||||
$sql .= (SQL_LAYER == 'mssql' || SQL_LAYER == 'mssql_odbc') ? " ESCAPE '\\'" : '';
|
||||
$sql .= ($db->sql_layer == 'mssql' || $db->sql_layer == 'mssql_odbc') ? " ESCAPE '\\'" : '';
|
||||
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
|
Reference in New Issue
Block a user