Php pdo mysql回退字符集

Php pdo mysql回退字符集,php,mysql,pdo,Php,Mysql,Pdo,我尝试在mysql fallback charset上进行谷歌搜索,但没有找到任何相关主题,或者我使用了错误的关键字 我希望尽可能支持utf8mb4,但我不知道如何为不受支持的字符集进行适当的回退。所以现在我用它来创建我的PDO实例 $this->dbh = new \PDO ($dsn, $databaseConfig["user"], $databaseConfig["pw"]); $this->dbh->setAttribute(\PDO::ATTR_ERRMODE, \

我尝试在
mysql fallback charset
上进行谷歌搜索,但没有找到任何相关主题,或者我使用了错误的关键字

我希望尽可能支持
utf8mb4
,但我不知道如何为不受支持的字符集进行适当的回退。所以现在我用它来创建我的PDO实例

$this->dbh = new \PDO ($dsn, $databaseConfig["user"], $databaseConfig["pw"]);
$this->dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$charset = $this->dbh->getAttribute(\PDO::ATTR_SERVER_VERSION) >= "5.5.0" ? "utf8mb4" : "utf8";
$this->dbh->exec("set names $charset");

通过手动设置默认值,这将回退到
utf8
,但是在PDO/mysql中是否有一种在默认值上回退字符集的正确方法??如果可能,PDO/mysql的默认字符集选择是什么???

您的
$dsn
字符串是什么样子的?我建议您将它设置在那里,而不是每次都查找它。@cmorrissey我试图支持5.3.6,所以我没有将它放在那里:(我想说的是,您希望它是一次性检查,因此您可能需要一个安装程序脚本,一个read me,在您的
$databaseConfig
@cmorrissey中设置它,我没有安装程序脚本的经验,但现在将查看它,感谢您的建议:)您的
$dsn
字符串是什么样子的?我建议您将它设置在那里,而不是每次都查找它。@cmorrissey我试图在5.3.6下支持它,所以我没有将它放在那里:(我想说的是,您希望它是一次性检查,因此您可能需要一个安装程序脚本,一个read me,在您的
$databaseConfig
@cmorrissey中设置它,我没有安装程序脚本的经验,但现在将查看它,感谢您的建议:)