PHP插入中文数据到虚拟主机上中文乱码显示的问题
我用的是西部数据的虚拟主机,mysql是花了200块,西部数据的人才给升级到了5.6mysql,兼容5.5。重点在里:我找西部数据的技术人员要求开放我这个数据库的权限给我。因为想运行这段代码必须要管理员权限 $conn->query("SET NAMES gb2312");
自己本地配置的开发环境因为可以自己随便设置权限,所以不会出现这种问题。
首先你先查看自己mysql里的编码 命令是
执行成功后显示如下
PHP插入数据的代码里面一定要加头文件:header("Content-type:text/html;charset=gb2312");
还有就是在链接数据库的代码后面添加这句话:$conn->query("SET NAMES gb2312");
完整代码贴出来
<?php header("Content-type:text/html;charset=gb2312"); $servername = ""; $username = ""; $password = ""; $dbname = ""; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); $conn->query("SET NAMES gb2312"); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('二二', '测试', 'john@example.com')"; if (mysqli_query($conn, $sql)) { echo "新记录插入成功"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } $conn->close(); ?>