##mysql部分##
-- 修改数据库
ALTER DATABASE 你的数据库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
-- 获取批量命令
SELECT CONCAT(
'ALTER TABLE `', TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;'
) AS sql_text
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = '你的数据库名'
AND TABLE_TYPE = 'BASE TABLE';
先执行上面这条SQL,会生成一列结果,每行一条 ALTER TABLE 语句
全选复制所有结果
粘贴到SQL编辑器里全部执行
##程序部分##
frphp/db/DBholder.php 第20行和第28行:
// 第20行,DSN加上charset
$this->pdo = new PDO("mysql:host=".DB_HOST.";port=".DB_PORT.";dbname=".DB_NAME.";charset=utf8mb4", DB_USER, DB_PASS);
// 第28行,SET NAMES改utf8mb4
$this->pdo->exec("SET NAMES utf8mb4");