]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
run 'set names' after each connection to deal with UTF8 correctly
authorEvan Prodromou <evan@controlyourself.ca>
Sun, 26 Apr 2009 16:13:49 +0000 (12:13 -0400)
committerEvan Prodromou <evan@controlyourself.ca>
Sun, 26 Apr 2009 16:13:49 +0000 (12:13 -0400)
classes/Memcached_DataObject.php

index 5f71f716b3dd569f84ef557420b03517ecc7c2f9..877bbf2e0fecfd3b62c465a2276c98b81834afc9 100644 (file)
@@ -227,4 +227,20 @@ class Memcached_DataObject extends DB_DataObject
         $c->set($ckey, $cached, MEMCACHE_COMPRESSED, $expiry);
         return new ArrayWrapper($cached);
     }
+
+    // We overload so that 'SET NAMES "utf8"' is called for
+    // each connection
+
+    function _connect()
+    {
+        global $_DB_DATAOBJECT;
+        $exists = !empty($this->_database_dsn_md5) &&
+          isset($_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5]);
+        $result = parent::_connect();
+        if (!$exists) {
+            $DB = &$_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5];
+            $DB->query('SET NAMES "utf8"');
+        }
+        return $result;
+    }
 }