Commit d83a7512 authored by Dries's avatar Dries
Browse files

- Patch #310447 by Damien Tournoud, Crell, catch: add back SET NAMES='utf8' -- we love UTF-8

parent 19329548
......@@ -30,6 +30,12 @@ public function __construct(Array $connection_options = array()) {
// Because MySQL's prepared statements skip the query cache, because it's dumb.
PDO::ATTR_EMULATE_PREPARES => TRUE,
));
// Force MySQL to use the UTF-8 character set by default.
$this->exec('SET NAMES "utf8"');
// Enable MySQL's "strict mode", which removes most of MySQL's
// "just be lazy" behaviors that end up causing more trouble than they're worth.
$this->exec('SET sql_mode=STRICT_ALL_TABLES');
}
......
......@@ -1569,3 +1569,37 @@ class DatabaseAlter2TestCase extends DatabaseTestCase {
}
}
}
/**
* Regression tests.
*/
class DatabaseRegressionTestCase extends DatabaseTestCase {
function getInfo() {
return array(
'name' => t('Regression tests'),
'description' => t('Regression tests cases for the database layer.'),
'group' => t('Database'),
);
}
/**
* Regression test for #310447.
*
* Tries to insert non-ascii UTF-8 data in a database column and checks
* if its stored properly.
*/
function testRegression_310447() {
// That's a 255 character UTF-8 string.
$name = str_repeat("é", 255);
db_insert('test')
->fields(array(
'name' => $name,
'age' => 20,
'job' => 'Dancer',
))->execute();
$from_database = db_query("SELECT name FROM {test} WHERE name = :name", array(':name' => $name))->fetchField();
$this->assertIdentical($name, $from_database, t("The database handles UTF-8 characters cleanly."));
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment