使用Laravel更新MySQL数据库字符集

时间:2016-09-13 22:36:27

标签: php mysql database laravel laravel-5.1

有没有办法使用Laravel更新MySQL数据库字符集,也许是数据库外观?我知道我可以像MySQL Workbench那样运行语句,但我想创建一个在数据库更新后对表运行多次更新的作业。

我想跑:

DB::statement("ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci");

但是我收到了一个错误:

SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll().

有没有办法可以完成我正在尝试做的事情,或者我应该将该声明与作业分开运行?

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题:

DB::connection()->getPdo()->setAttribute(PDO::ATTR_EMULATE_PREPARES, true);

我经常在运行我的陈述后重置这个:

DB::connection()->getPdo()->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);