mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-01 14:30:32 +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:
@@ -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
|
||||
*
|
||||
|
@@ -369,6 +369,14 @@ class dbal_mssql extends dbal
|
||||
return str_replace("'", "''", $msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape string used in sql query
|
||||
*/
|
||||
function sql_escape_binary($msg)
|
||||
{
|
||||
return "CAST('" . $msg . "' AS varbinary)";
|
||||
}
|
||||
|
||||
/**
|
||||
* return sql error array
|
||||
* @access: private
|
||||
|
@@ -379,6 +379,14 @@ class dbal_mssql_odbc extends dbal
|
||||
return str_replace("'", "''", $msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape string used in sql query
|
||||
*/
|
||||
function sql_escape_binary($msg)
|
||||
{
|
||||
return "CAST('" . $msg . "' AS varbinary)";
|
||||
}
|
||||
|
||||
/**
|
||||
* Build db-specific query data
|
||||
* @access: private
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -378,6 +387,14 @@ class dbal_postgres extends dbal
|
||||
return @pg_escape_string($msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape string used in sql query
|
||||
*/
|
||||
function sql_escape_binary($msg)
|
||||
{
|
||||
return "'" . @pg_escape_bytea($msg) . "'";
|
||||
}
|
||||
|
||||
/**
|
||||
* return sql error array
|
||||
* @access: private
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -307,6 +316,14 @@ class dbal_sqlite extends dbal
|
||||
return @sqlite_escape_string($msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* Escape string used in sql query
|
||||
*/
|
||||
function sql_escape_binary($msg)
|
||||
{
|
||||
return "'" . @sqlite_udf_encode_binary($msg) . "'";
|
||||
}
|
||||
|
||||
/**
|
||||
* return sql error array
|
||||
* @access: private
|
||||
|
Reference in New Issue
Block a user