mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-24 01:03:05 +02:00
This should end some issues we have been having regarding the proper binary encoding of stuff. :D
Acyd Burn: quit breaking the schema :P git-svn-id: file:///svn/phpbb/trunk@6238 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user