mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
MDL-37284 fix mysql test for unicode compatibility
This commit is contained in:
parent
0dc5a532ec
commit
9d0ded6697
1 changed files with 12 additions and 33 deletions
|
@ -803,45 +803,24 @@ class mysqli_native_moodle_database extends moodle_database {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is db in unicode mode?
|
* Is this database compatible with utf8?
|
||||||
* @return bool
|
* @return bool
|
||||||
*/
|
*/
|
||||||
public function setup_is_unicodedb() {
|
public function setup_is_unicodedb() {
|
||||||
$sql = "SHOW LOCAL VARIABLES LIKE 'character_set_database'";
|
// All new tables are created with this collation, we just have to make sure it is utf8 compatible,
|
||||||
$this->query_start($sql, null, SQL_QUERY_AUX);
|
// if config table already exists it has this collation too.
|
||||||
|
$collation = $this->get_dbcollation();
|
||||||
|
|
||||||
|
$sql = "SHOW COLLATION WHERE Collation ='$collation' AND Charset = 'utf8'";
|
||||||
|
$this->query_start($sql, NULL, SQL_QUERY_AUX);
|
||||||
$result = $this->mysqli->query($sql);
|
$result = $this->mysqli->query($sql);
|
||||||
$this->query_end($result);
|
$this->query_end($result);
|
||||||
|
if ($result->fetch_assoc()) {
|
||||||
$return = false;
|
$return = true;
|
||||||
if ($result) {
|
} else {
|
||||||
while($row = $result->fetch_assoc()) {
|
$return = false;
|
||||||
if (isset($row['Value'])) {
|
|
||||||
$return = (strtoupper($row['Value']) === 'UTF8' or strtoupper($row['Value']) === 'UTF-8');
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$result->close();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$return) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
$sql = "SHOW LOCAL VARIABLES LIKE 'collation_database'";
|
|
||||||
$this->query_start($sql, null, SQL_QUERY_AUX);
|
|
||||||
$result = $this->mysqli->query($sql);
|
|
||||||
$this->query_end($result);
|
|
||||||
|
|
||||||
$return = false;
|
|
||||||
if ($result) {
|
|
||||||
while($row = $result->fetch_assoc()) {
|
|
||||||
if (isset($row['Value'])) {
|
|
||||||
$return = (strpos($row['Value'], 'latin1') !== 0);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
$result->close();
|
|
||||||
}
|
}
|
||||||
|
$result->close();
|
||||||
|
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue