有没有办法使用 Laravel 更新 MySQL 数据库字符集,也许是 DB facade?我知道我可以在 MySQL Workbench 之类的东西中运行该语句,但我想创建一个作业,该作业将在数据库更新后对表运行多个更新。
我想跑:
DB::statement("ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci");
但是我得到一个错误:
SQLSTATE[HY000]:一般错误:2014 其他无缓冲查询处于事件状态时无法执行查询。考虑使用 PDOStatement::fetchAll()。
有什么方法可以完成我想做的事情,还是我应该将语句与作业分开运行?
最佳答案
这应该可以解决问题:
DB::connection()->getPdo()->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);
我通常在运行语句后重置它:
DB::connection()->getPdo()->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
关于php - 使用 Laravel 更新 MySQL 数据库字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39479993/