aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/acp/acp_forums.php66
-rw-r--r--phpBB/includes/acp/acp_styles.php70
-rw-r--r--phpBB/includes/db/dbal.php32
-rw-r--r--phpBB/includes/db/mssql.php8
-rw-r--r--phpBB/includes/db/mssql_odbc.php8
-rw-r--r--phpBB/includes/db/postgres.php19
-rw-r--r--phpBB/includes/db/sqlite.php19
-rw-r--r--phpBB/includes/functions_posting.php135
-rw-r--r--phpBB/includes/functions_privmsgs.php132
-rw-r--r--phpBB/includes/functions_user.php201
-rw-r--r--phpBB/includes/ucp/ucp_profile.php66
11 files changed, 91 insertions, 665 deletions
diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php
index ac461772d6..6fbe85450d 100644
--- a/phpBB/includes/acp/acp_forums.php
+++ b/phpBB/includes/acp/acp_forums.php
@@ -919,72 +919,8 @@ class acp_forums
$forum_id = $forum_data_sql['forum_id'];
unset($forum_data_sql['forum_id']);
- $query = '';
-
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $values = array();
- foreach ($forum_data_sql as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'forum_desc_bitfield' && $key != 'forum_rules_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- case 'sqlite':
- $values = array();
- foreach ($forum_data_sql as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'forum_desc_bitfield' && $key != 'forum_rules_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = '" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- default:
- $query = $db->sql_build_array('UPDATE', $forum_data_sql);
- break;
- }
-
$sql = 'UPDATE ' . FORUMS_TABLE . '
- SET ' . $query . '
+ SET ' . $db->sql_build_array('UPDATE', $forum_data_sql) . '
WHERE forum_id = ' . $forum_id;
$db->sql_query($sql);
diff --git a/phpBB/includes/acp/acp_styles.php b/phpBB/includes/acp/acp_styles.php
index c69cbec65e..03ba2cf367 100644
--- a/phpBB/includes/acp/acp_styles.php
+++ b/phpBB/includes/acp/acp_styles.php
@@ -2949,78 +2949,10 @@ pagination_sep = \'{PAGINATION_SEP}\'
unset($cfg_data);
}
- $query = '';
-
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $fields = array();
- foreach ($sql_ary as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- case 'sqlite':
- $fields = array();
- foreach ($sql_ary as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "'" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- default:
- $query = $db->sql_build_array('INSERT', $sql_ary);
- break;
- }
-
$db->sql_transaction('begin');
$sql = "INSERT INTO $sql_from
- " . $query;
+ " . $db->sql_build_array('INSERT', $sql_ary);
$db->sql_query($sql);
$id = $db->sql_nextid();
diff --git a/phpBB/includes/db/dbal.php b/phpBB/includes/db/dbal.php
index 8660c43546..dcf9947ddf 100644
--- a/phpBB/includes/db/dbal.php
+++ b/phpBB/includes/db/dbal.php
@@ -199,7 +199,14 @@ class dbal
}
else if (is_string($var))
{
- $values[] = "'" . $this->sql_escape($var) . "'";
+ if (strpos($key, 'bitfield') === false)
+ {
+ $values[] = "'" . $this->sql_escape($var) . "'";
+ }
+ else
+ {
+ $values[] = $this->sql_escape_binary($var);
+ }
}
else if (is_array($var) && is_string($var[0]))
{
@@ -228,7 +235,14 @@ class dbal
}
else if (is_string($var))
{
- $values[] = "'" . $this->sql_escape($var) . "'";
+ if (strpos($key, 'bitfield') === false)
+ {
+ $values[] = "'" . $this->sql_escape($var) . "'";
+ }
+ else
+ {
+ $values[] = $this->sql_escape_binary($var);
+ }
}
else
{
@@ -251,7 +265,14 @@ class dbal
}
else if (is_string($var))
{
- $values[] = "$key = '" . $this->sql_escape($var) . "'";
+ if (strpos($key, 'bitfield') === false)
+ {
+ $values[] = "$key = '" . $this->sql_escape($var) . "'";
+ }
+ else
+ {
+ $values[] = "$key = " . $this->sql_escape_binary($var);
+ }
}
else
{
@@ -264,6 +285,11 @@ class dbal
return $query;
}
+ function sql_escape_binary($msg)
+ {
+ return "'" . $this->sql_escape($msg) . "'";
+ }
+
/**
* Build sql statement from array for select and select distinct statements
*
diff --git a/phpBB/includes/db/mssql.php b/phpBB/includes/db/mssql.php
index 13a6fb8aab..0e8cc318f1 100644
--- a/phpBB/includes/db/mssql.php
+++ b/phpBB/includes/db/mssql.php
@@ -370,6 +370,14 @@ class dbal_mssql extends dbal
}
/**
+ * Escape string used in sql query
+ */
+ function sql_escape_binary($msg)
+ {
+ return "CAST('" . $msg . "' AS varbinary)";
+ }
+
+ /**
* return sql error array
* @access: private
*/
diff --git a/phpBB/includes/db/mssql_odbc.php b/phpBB/includes/db/mssql_odbc.php
index e1b2675a23..38ed91cd55 100644
--- a/phpBB/includes/db/mssql_odbc.php
+++ b/phpBB/includes/db/mssql_odbc.php
@@ -380,6 +380,14 @@ class dbal_mssql_odbc extends dbal
}
/**
+ * Escape string used in sql query
+ */
+ function sql_escape_binary($msg)
+ {
+ return "CAST('" . $msg . "' AS varbinary)";
+ }
+
+ /**
* Build db-specific query data
* @access: private
*/
diff --git a/phpBB/includes/db/postgres.php b/phpBB/includes/db/postgres.php
index c928a936d9..03fd5c17ce 100644
--- a/phpBB/includes/db/postgres.php
+++ b/phpBB/includes/db/postgres.php
@@ -258,7 +258,16 @@ class dbal_postgres extends dbal
return $cache->sql_fetchrow($query_id);
}
- return ($query_id) ? @pg_fetch_assoc($query_id, NULL) : false;
+ $row = @pg_fetch_assoc($query_id, null);
+ if ($row)
+ {
+ foreach ($row as $key => $value)
+ {
+ $row[$key] = (strpos($key, 'bitfield') === false) ? $value : pg_unescape_bytea($value);
+ }
+ }
+
+ return ($query_id) ? $row : false;
}
/**
@@ -379,6 +388,14 @@ class dbal_postgres extends dbal
}
/**
+ * Escape string used in sql query
+ */
+ function sql_escape_binary($msg)
+ {
+ return "'" . @pg_escape_bytea($msg) . "'";
+ }
+
+ /**
* return sql error array
* @access: private
*/
diff --git a/phpBB/includes/db/sqlite.php b/phpBB/includes/db/sqlite.php
index 8bea1a3198..c203af9f67 100644
--- a/phpBB/includes/db/sqlite.php
+++ b/phpBB/includes/db/sqlite.php
@@ -216,7 +216,16 @@ class dbal_sqlite extends dbal
return $cache->sql_fetchrow($query_id);
}
- return ($query_id) ? @sqlite_fetch_array($query_id, SQLITE_ASSOC) : false;
+ $row = @sqlite_fetch_array($query_id, SQLITE_ASSOC);
+ if ($row)
+ {
+ foreach ($row as $key => $value)
+ {
+ $row[$key] = (strpos($key, 'bitfield') === false) ? $value : sqlite_udf_decode_binary($value);
+ }
+ }
+
+ return $row;
}
/**
@@ -308,6 +317,14 @@ class dbal_sqlite extends dbal
}
/**
+ * Escape string used in sql query
+ */
+ function sql_escape_binary($msg)
+ {
+ return "'" . @sqlite_udf_encode_binary($msg) . "'";
+ }
+
+ /**
* return sql error array
* @access: private
*/
diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php
index 3d1b8aa96a..87a7b63533 100644
--- a/phpBB/includes/functions_posting.php
+++ b/phpBB/includes/functions_posting.php
@@ -1549,76 +1549,7 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
);
}
- $query = '';
-
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $fields = array();
- foreach ($sql_data[POSTS_TABLE]['sql'] as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- case 'sqlite':
- $fields = array();
- foreach ($sql_data[POSTS_TABLE]['sql'] as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "'" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- default:
- $query = $db->sql_build_array('INSERT', $sql_data[POSTS_TABLE]['sql']);
- break;
- }
-
-
- $sql = 'INSERT INTO ' . POSTS_TABLE . ' ' . $query;
+ $sql = 'INSERT INTO ' . POSTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_data[POSTS_TABLE]['sql']);
$db->sql_query($sql);
$data['post_id'] = $db->sql_nextid();
@@ -1694,70 +1625,8 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u
// Update the posts table
if (isset($sql_data[POSTS_TABLE]['sql']))
{
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $values = array();
- foreach ($sql_data[POSTS_TABLE]['sql'] as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- case 'sqlite':
- $values = array();
- foreach ($sql_data[POSTS_TABLE]['sql'] as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key ='" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- default:
- $query = $db->sql_build_array('UPDATE', $sql_data[POSTS_TABLE]['sql']);
- break;
- }
-
$sql = 'UPDATE ' . POSTS_TABLE . '
- SET ' . $query . '
+ SET ' . $db->sql_build_array('UPDATE', $sql_data[POSTS_TABLE]['sql']) . '
WHERE post_id = ' . $data['post_id'];
$db->sql_query($sql);
}
diff --git a/phpBB/includes/functions_privmsgs.php b/phpBB/includes/functions_privmsgs.php
index b41a2f8b8f..068925b359 100644
--- a/phpBB/includes/functions_privmsgs.php
+++ b/phpBB/includes/functions_privmsgs.php
@@ -1316,141 +1316,13 @@ function submit_pm($mode, $subject, &$data, $update_message, $put_in_outbox = tr
if ($mode == 'post' || $mode == 'reply' || $mode == 'quote' || $mode == 'quotepost' || $mode == 'forward')
{
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $fields = array();
- foreach ($sql_data as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- case 'sqlite':
- $fields = array();
- foreach ($sql_data as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "'" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- default:
- $query = $db->sql_build_array('INSERT', $sql_data);
- break;
- }
-
- $db->sql_query('INSERT INTO ' . PRIVMSGS_TABLE . ' ' . $query);
+ $db->sql_query('INSERT INTO ' . PRIVMSGS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_data));
$data['msg_id'] = $db->sql_nextid();
}
else if ($mode == 'edit')
{
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $values = array();
- foreach ($sql_data as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'forum_desc_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- case 'sqlite':
- $values = array();
- foreach ($sql_data as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'forum_desc_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = '" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- default:
- $query = $db->sql_build_array('UPDATE', $sql_data);
- break;
- }
-
$sql = 'UPDATE ' . PRIVMSGS_TABLE . '
- SET message_edit_count = message_edit_count + 1, ' . $query . '
+ SET message_edit_count = message_edit_count + 1, ' . $db->sql_build_array('UPDATE', $sql_data) . '
WHERE msg_id = ' . $data['msg_id'];
$db->sql_query($sql);
}
diff --git a/phpBB/includes/functions_user.php b/phpBB/includes/functions_user.php
index 559be6bcaa..72f240b2e1 100644
--- a/phpBB/includes/functions_user.php
+++ b/phpBB/includes/functions_user.php
@@ -207,75 +207,7 @@ function user_add($user_row, $cp_data = false)
}
}
- $query = '';
-
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $fields = array();
- foreach ($sql_ary as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'user_sig_bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- case 'sqlite':
- $fields = array();
- foreach ($sql_ary as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'user_sig_bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "'" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- default:
- $query = $db->sql_build_array('INSERT', $sql_ary);
- break;
- }
-
- $sql = 'INSERT INTO ' . USERS_TABLE . ' ' . $query;
+ $sql = 'INSERT INTO ' . USERS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
$db->sql_query($sql);
$user_id = $db->sql_nextid();
@@ -1495,140 +1427,13 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
if ($group_id)
{
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $values = array();
- foreach ($sql_ary as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'group_desc_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- case 'sqlite':
- $values = array();
- foreach ($sql_ary as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'group_desc_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = '" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- default:
- $query = $db->sql_build_array('UPDATE', $sql_ary);
- break;
- }
-
$sql = 'UPDATE ' . GROUPS_TABLE . '
- SET ' . $query . "
+ SET ' . $db->sql_build_array('UPDATE', $sql_ary) . "
WHERE group_id = $group_id";
}
else
{
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $fields = array();
- foreach ($sql_ary as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- case 'sqlite':
- $fields = array();
- foreach ($sql_ary as $key => $var)
- {
- $fields[] = $key;
-
- if (is_null($var))
- {
- $values[] = 'NULL';
- }
- else if (is_string($var))
- {
- if ($key !== 'bbcode_bitfield')
- {
- $values[] = "'" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "'" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? intval($var) : $var;
- }
- }
- $query = ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
- break;
-
- default:
- $query = $db->sql_build_array('INSERT', $sql_ary);
- break;
- }
- $sql = 'INSERT INTO ' . GROUPS_TABLE . ' ' . $query;
+ $sql = 'INSERT INTO ' . GROUPS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
}
$db->sql_query($sql);
diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php
index 6a557bc264..52f17a8048 100644
--- a/phpBB/includes/ucp/ucp_profile.php
+++ b/phpBB/includes/ucp/ucp_profile.php
@@ -440,72 +440,8 @@ class ucp_profile
'user_sig_bbcode_bitfield' => $message_parser->bbcode_bitfield
);
- $query = '';
-
- switch (SQL_LAYER)
- {
- case 'mssql':
- case 'mssql_odbc':
- $values = array();
- foreach ($sql_ary as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'user_sig_bbcode_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = CAST('" . $var . "' AS varbinary)";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- case 'sqlite':
- $values = array();
- foreach ($sql_ary as $key => $var)
- {
- if (is_null($var))
- {
- $values[] = "$key = NULL";
- }
- else if (is_string($var))
- {
- if ($key !== 'user_sig_bbcode_bitfield')
- {
- $values[] = "$key = '" . $db->sql_escape($var) . "'";
- }
- else
- {
- $values[] = "$key = '" . sqlite_udf_encode_binary($var) . "'";
- }
- }
- else
- {
- $values[] = (is_bool($var)) ? "$key = " . intval($var) : "$key = $var";
- }
- }
- $query = implode(', ', $values);
- break;
-
- default:
- $query = $db->sql_build_array('UPDATE', $sql_ary);
- break;
- }
-
$sql = 'UPDATE ' . USERS_TABLE . '
- SET ' . $query . '
+ SET ' . $db->sql_build_array('UPDATE', $sql_ary) . '
WHERE user_id = ' . $user->data['user_id'];
$db->sql_query($sql);