连接 mysql 数据库时出错。

CD_*_*_NS 3 php pdo

它可能是重复的,但我尝试了 stackoverflow 其他帖子中建议的所有解决方案,但找不到解决方案。

 <?php
$PDO= new PDO('mysql:host= 127.0.0.1; dbname = social_network; charset= utf8', 'root', '' );
$PDO-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

?>
Run Code Online (Sandbox Code Playgroud)

我遇到的错误如下:

致命错误:未捕获的 PDOException:SQLSTATE[HY000] [2019] C:\xampp\htdocs\social_network\create_account.php:2 中的未知字符集堆栈跟踪:#0 C:\xampp\htdocs\social_network\create_account.php(2 ): PDO->__construct('mysql:host= 127...', 'root', '') #1 {main} 在第 2 行的 C:\xampp\htdocs\social_network\create_account.php 中抛出

我很欣赏你的快速回答。

Rïs*_*mar 6

DSN 中有一个额外的空格,它被视为字符集名称的一部分,因此必须将其删除。

<?php
$servername = 127.0.0.1;  //localhost
$username = "root";
$password = "";
$dbname = "social_network";
$conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=utf8", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Run Code Online (Sandbox Code Playgroud)