PDO 连接字符编码处理
使用 PDO(PHP 数据对象)扩展建立 MySQL 连接时,正确的字符编码对于确保数据完整性和正确操作。让我们探讨如何设置 PDO 连接的字符编码。
在之前的代码中使用的传统 mysql_* 扩展中:
mysql_set_charset("utf8",$link); mysql_query("SET NAMES 'UTF8'");
这些命令设置连接的字符编码。但是,对于 PDO,方法有所不同。
要设置 PDO 连接的字符编码,您可以在连接字符串本身中指定它。例如:
$connect = new PDO("mysql:host=$host;dbname=$db;charset=utf8mb4", $user, $pass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
此字符串将字符集选项附加到连接字符串,指定所需的编码,在本例中为“utf8mb4”。使用此方法会在建立连接时设置编码。
旧版 PHP 版本
但是,如果您使用 5.3.6 之前的 PHP 版本,则字符集连接字符串中的选项被忽略。在这种情况下,你必须使用替代方法:
$dbh = new PDO("mysql:host=$host;dbname=$db", $user, $password); $dbh->exec("set names utf8mb4");
这里,在不指定编码的情况下建立连接,并使用 exec() 方法执行 SQL 查询来设置之后的字符编码连接已建立。
以上是如何正确设置 PDO MySQL 连接的字符编码?的详细内容。更多信息请关注PHP中文网其他相关文章!