summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@controlyourself.ca>2009-05-30 13:59:57 -0400
committerEvan Prodromou <evan@controlyourself.ca>2009-05-30 13:59:57 -0400
commit9e16b7d89b101d8dfebdb8bf22ea56e9b8731bdd (patch)
tree6761aaa2e72430f4a62168e682a424565953bd4d
parenta262f83210f6a405bfe79148b52387d1dbdd9a5d (diff)
Use mysql_set_charset for connection instead of SET NAMES
PHP doesn't get the info about the charset of the connection if you use SET NAMES. So, we use the appropriate PHP function instead.
-rw-r--r--classes/Memcached_DataObject.php10
1 files changed, 8 insertions, 2 deletions
diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php
index 52ad4100f..33ac70dd0 100644
--- a/classes/Memcached_DataObject.php
+++ b/classes/Memcached_DataObject.php
@@ -239,8 +239,14 @@ class Memcached_DataObject extends DB_DataObject
$result = parent::_connect();
if (!$exists) {
$DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
- if (common_config('db', 'utf8')) {
- $DB->query('SET NAMES "utf8"');
+ if (common_config('db', 'type') == 'mysql' &&
+ common_config('db', 'utf8')) {
+ $conn = $DB->connection;
+ if ($DB instanceof DB_mysqli) {
+ mysqli_set_charset($conn, 'utf8');
+ } else if ($DB instanceof DB_mysql) {
+ mysql_set_charset('utf8', $conn);
+ }
}
}
return $result;