gpt4 book ai didi

php - 如何在MYSQL中将mysqli_set_charset($conn ,"utf8")转换成PDO格式?

转载 作者:行者123 更新时间:2023-11-29 01:26:55 25 4
gpt4 key购买 nike

我正在尝试解决 UTF8 问题。到目前为止,我设法测试出来,它在 mysqli 连接中工作。

$servername = "localhost";
$username = "root";
$password = "";
$dbname = "tesddddt";

$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");

if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM customer";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["uid"]. " - Name: " . $row["username"]. " " . $row["email"]. "<br>";
}
} else {
echo "0 results";
}

我设法使用上述编码插入和选择具有以其语言格式正确显示的字符的数据。

但是,当我尝试在 PDO 中执行此操作时,它在我插入数据时显示 1 个错误。

public function __construct(){
try {

$conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user_name, $this->db_pass);
mysqli_set_charset($conn,"utf8"); // <- added here
$this->conn=$conn;
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
}

我遇到了这个错误

Warning: mysqli_set_charset() expects parameter 1 to be mysqli, object given in...

我的 php 项目正在使用 PDO,因此需要以 PDO 格式完成这项工作。任何人都知道如何解决这个问题?

最佳答案

您尝试通过 PDO 连接,然后通过 mysqli 更改字符集,而没有 mysqli 连接,这就是导致警告的原因。

在 PDO 中,字符集通常在连接字符串中指定,如下所示:

$conn = new PDO("mysql:host=yourhost;dbname=yourdbname;charset=utf8");

关于php - 如何在MYSQL中将mysqli_set_charset($conn ,"utf8")转换成PDO格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39523460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com