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

标签 php mysql database laravel laravel-5.1

有没有办法使用 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/

相关文章:

php - 创建连接表问题!

mysql - 如何在 Mysql 中检索相似订单?

java - 使用 Java 的高效 "Pinging"

php - 在数据库中存储用户首选项的正确方法是什么?

php - 什么可以阻止带有 PHP 变量的 CSS 加载?

java - Git 新手,Git gui 似乎已将所有 mydocuments 添加到主存储库

php - 如何在两个 mySQL 表之间创建 "link"?

MYSQL 查询查找匹配项 LIKE

mysql - 如何在 MySQL 中启用、使用和分析慢查询日志?

database - 如果发现的数据不够,则检索更多数据。 Cassandra