aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-10-07 21:44:27 +0000
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>2009-10-07 21:44:27 +0000
commitd1acf00b8b8ca67e1ba1855041a55b7ee6d7db74 (patch)
treef795ca153a5e25952fd2564f3da0ad77b894fe57
parentfc11e5260309702e3301837e3725fe8084b61a4e (diff)
downloadelgg-d1acf00b8b8ca67e1ba1855041a55b7ee6d7db74.tar.gz
elgg-d1acf00b8b8ca67e1ba1855041a55b7ee6d7db74.tar.bz2
Fixes #1181: UTF8 now correctly stored in database.
git-svn-id: http://code.elgg.org/elgg/trunk@3514 36083f99-b078-4883-b0ff-0f9b5a30f544
-rw-r--r--engine/lib/database.php5
-rw-r--r--engine/schema/upgrades/2009100701.sql19
2 files changed, 23 insertions, 1 deletions
diff --git a/engine/lib/database.php b/engine/lib/database.php
index fa3a91fbb..ff74c3655 100644
--- a/engine/lib/database.php
+++ b/engine/lib/database.php
@@ -56,6 +56,9 @@
if (!mysql_select_db($CONFIG->dbname, $dblink[$dblinkname]))
throw new DatabaseException(sprintf(elgg_echo('DatabaseException:NoConnect'), $CONFIG->dbname));
+ // Set DB for UTF8
+ mysql_query("SET NAMES utf8");
+
// Set up cache
if ((!$DB_QUERY_CACHE) && (!$CONFIG->db_disable_query_cache))
$DB_QUERY_CACHE = new ElggStaticVariableCache('db_query_cache'); //array();
@@ -651,4 +654,4 @@
register_elgg_event_handler('boot','system','init_db',0);
-?> \ No newline at end of file
+?>
diff --git a/engine/schema/upgrades/2009100701.sql b/engine/schema/upgrades/2009100701.sql
new file mode 100644
index 000000000..f84096a94
--- /dev/null
+++ b/engine/schema/upgrades/2009100701.sql
@@ -0,0 +1,19 @@
+SET NAMES utf8;
+
+REPLACE INTO `prefix_metastrings` (id, string)
+ SELECT id, unhex(hex(convert(string using latin1)))
+ FROM `prefix_metastrings`;
+
+REPLACE INTO `prefix_groups_entity` (guid, name, description)
+ SELECT guid, unhex(hex(convert(name using latin1))), unhex(hex(convert(description using latin1)))
+ FROM `prefix_groups_entity`;
+
+REPLACE INTO `prefix_objects_entity` (guid, title, description)
+ SELECT guid, unhex(hex(convert(title using latin1))), unhex(hex(convert(description using latin1)))
+ FROM `prefix_objects_entity`;
+
+REPLACE INTO `prefix_users_entity` (guid, name, username, password, salt, email, language, code,
+ banned, last_action, prev_last_action, last_login, prev_last_login)
+ SELECT guid, unhex(hex(convert(name using latin1))), username, password, salt, email, language, code,
+ banned, last_action, prev_last_action, last_login, prev_last_login
+ FROM `prefix_users_entity`;