当我们使用PHP连接MySQL查询结果展示的时候,如果涉及到中文,有可能会出现乱码现象。这时候我们需要针对这种情况做特殊的处理,才能够正确显示中文内容。以下是完整的攻略:
1. 调整MySQL字符集
在连接MySQL的时候,我们需要手动调整MySQL的默认字符集为UTF-8。具体步骤如下:
- 编辑MySQL配置文件my.cnf,添加以下内容:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
- 重启MySQL服务,让配置生效。
2. 调整PHP字符集
在PHP文件中,我们需要通过设置字符集编码来保证能够正确显示中文。具体步骤如下:
- 在PHP文件中添加以下内容:
header("Content-Type:text/html;charset=utf-8");
- 如果还是出现了乱码现象,可以尝试将查询结果手动转换成UTF-8编码。具体步骤如下:
mysqli_query($connection, "SET NAMES 'utf8'");
$result = mysqli_query($connection, "SELECT * FROM table");
while($row = mysqli_fetch_array($result)){
$name = iconv('GBK', 'UTF-8', $row['name']);
echo $name;
//其他操作
}
上述代码中,我们通过调用iconv函数将查询结果中的name字段转换成UTF-8编码,然后输出到页面上。
示例1:
假设有一张名为users的表,包含以下字段:
- id:用户ID,整型
- name:用户名,字符串
现在我们要查询出所有用户的用户名并展示在页面上。代码如下:
<?php
header("Content-Type:text/html;charset=utf-8");
//连接MySQL
$connection = mysqli_connect("localhost", "username", "password", "database");
if(!$connection ){
die('Could not connect: ' . mysqli_error());
}
//设置字符集
mysqli_query($connection, "SET NAMES 'utf8'");
//查询用户信息
$result = mysqli_query($connection, "SELECT * FROM users");
//遍历结果并展示用户名
while($row = mysqli_fetch_array($result)){
$name = $row['name'];
echo $name."<br>";
}
//关闭连接
mysqli_close($connection);
?>
示例2:
假设有一张名为students的表,包含以下字段:
- id:学生ID,整型
- name:学生姓名,字符串
- major:所属专业,字符串
现在我们要查询出所有学生的信息并展示在页面上。代码如下:
<?php
header("Content-Type:text/html;charset=utf-8");
//连接MySQL
$connection = mysqli_connect("localhost", "username", "password", "database");
if(!$connection ){
die('Could not connect: ' . mysqli_error());
}
//设置字符集
mysqli_query($connection, "SET NAMES 'utf8'");
//查询学生信息
$result = mysqli_query($connection, "SELECT * FROM students");
//遍历结果并展示学生信息
while($row = mysqli_fetch_array($result)){
$id = $row['id'];
$name = iconv('GBK', 'UTF-8', $row['name']);
$major = iconv('GBK', 'UTF-8', $row['major']);
echo "ID:".$id."<br>";
echo "姓名:".$name."<br>";
echo "专业:".$major."<br>";
echo "<br>";
}
//关闭连接
mysqli_close($connection);
?>
通过上述两个例子,我们可以看到如何正确地连接MySQL并查询结果,并在页面上展示中文内容。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP连接MySQL查询结果中文显示乱码解决方法 - Python技术站