mirror of
https://github.com/e107inc/e107.git
synced 2025-08-25 23:36:29 +02:00
Convert and run e107 using the MySQL/MariaDB utf8mb4 character set and
InnoDB storage engine Components affected: * `db_verify` now checks and corrects the table storage engine * `db_verify` now checks and corrects the table default character set * Note: Field character sets can still be overridden * Note: When correcting, the entire table is converted to the target charset. * The alt_auth plugin now connects via PDO using the e107 default charset, utf8mb4 * `e_db_pdo` now sets the charset to utf8mb4. This is currently not customizable because it was previously not customizable. * `install.php` now generates an `e107_config.php` file with `$mySQLcharset = 'utf8mb4';`, though this option is not actually used. * `install.php` now removes plugin tables before installing plugins. * `e_db_mysql` now only accepts the `utf8mb4` charset. Previously, it only accepted the `utf8` charset. * `e_db_mysql` now configures `mysqli_real_escape_string` to match the new default charset, `utf8mb4`. * Plugin installations now use the preferred MySQL table storage engines and charsets. The preferred MySQL table storage engines are now mapped like so: * If `ENGINE=MyISAM` is specified, the actual storage engine set will be the first available of: InnoDB, Aria, Maria, MyISAM * If `ENGINE=Aria` is specified, the actual storage engine set will be the first available of: Aria, Maria, MyISAM * If `ENGINE=InnoDB` is specified, the actual storage engine set will be the first available of: InnoDB, XtraDB * If `ENGINE=XtraDB` is specified, the actual storage engine set will be the first available of: XtraDB, InnoDB The preferred MySQL character set is now aliased like so: * `utf8` => `utf8mb4` * `utf8mb3` => `utf8mb3` * `utf8mb4` => `utf8mb4` Fixes: #4501
This commit is contained in:
@@ -2610,11 +2610,11 @@ class e_db_pdo implements e_db
|
||||
|
||||
|
||||
/**
|
||||
* Set Database charset to utf8
|
||||
* Set Database charset to utf8mb4
|
||||
*
|
||||
* @access private
|
||||
*/
|
||||
public function setCharset($charset = 'utf8')
|
||||
public function setCharset($charset = 'utf8mb4')
|
||||
{
|
||||
$this->db_Query("SET NAMES `$charset`");
|
||||
|
||||
@@ -2627,7 +2627,8 @@ class e_db_pdo implements e_db
|
||||
*/
|
||||
public function getCharset()
|
||||
{
|
||||
return $this->mySQLcharset;
|
||||
require_once(e_HANDLER."db_verify_class.php");
|
||||
return (new db_verify())->getIntendedCharset($this->mySQLcharset);
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user