MySQL读取中文数据的问题,在MySQL的命令行界面是可以读出中文的,但是在PHP里面读出来的就是问号
<?php$db=@newmysqli("localhost","root","123456","test");if(mysqli_connect_errno()){ec...
<?php
$db=@new mysqli("localhost", "root", "123456","test");
if(mysqli_connect_errno()){
echo "数据库连接失败!<br>\n";
echo mysqli_connect_error();
exit;
}
$sql = "select * from t_user";
$rs = $db->query($sql);
if(!$rs){
$db->close();
echo '查询失败!';
exit;
}
$db->query("set names gb2312");
echo "<table border='1' bgcolor='lightblue'>";
echo "<tr><th>用户名</th><th>密码</th><th>姓名</th><th>Email</th></tr>";
while($row = $rs->fetch_assoc()){
echo "<tr><td>{$row['f_username']}</td>";
echo "<td>{$row['f_password']}</td>";
echo "<td>{$row['f_name'] }</td>";
echo "<td>{$row['f_email']}</td></tr>\n";
}
echo "</table>";
$db->close();
?>
MySQL编码设置如图!
跪求大大们指点! 展开
$db=@new mysqli("localhost", "root", "123456","test");
if(mysqli_connect_errno()){
echo "数据库连接失败!<br>\n";
echo mysqli_connect_error();
exit;
}
$sql = "select * from t_user";
$rs = $db->query($sql);
if(!$rs){
$db->close();
echo '查询失败!';
exit;
}
$db->query("set names gb2312");
echo "<table border='1' bgcolor='lightblue'>";
echo "<tr><th>用户名</th><th>密码</th><th>姓名</th><th>Email</th></tr>";
while($row = $rs->fetch_assoc()){
echo "<tr><td>{$row['f_username']}</td>";
echo "<td>{$row['f_password']}</td>";
echo "<td>{$row['f_name'] }</td>";
echo "<td>{$row['f_email']}</td></tr>\n";
}
echo "</table>";
$db->close();
?>
MySQL编码设置如图!
跪求大大们指点! 展开
3个回答
展开全部
很明显是编码问题:
====================
要想不出现乱码
请确保:如下几个地方编码相同。
-------------------------------
拿gb2312来说
1、你的数据库编码为gb2312.
2、你的数据库连接为gb2312.
3、你的php文件,html文件编码是gb2312
===================
看了你的php代码。
你用到了 $db->query("set names gb2312");,但是你位置放错了。
你应该是放在sql语句执行以前。如下:
-------------------------
$db->query("set names gb2312")
$sql = "select * from t_user";
$rs = $db->query($sql);
这样就OK了,你重新写一条数据进去,再查一下试试。
希望我的答案能帮到你,:)
====================
要想不出现乱码
请确保:如下几个地方编码相同。
-------------------------------
拿gb2312来说
1、你的数据库编码为gb2312.
2、你的数据库连接为gb2312.
3、你的php文件,html文件编码是gb2312
===================
看了你的php代码。
你用到了 $db->query("set names gb2312");,但是你位置放错了。
你应该是放在sql语句执行以前。如下:
-------------------------
$db->query("set names gb2312")
$sql = "select * from t_user";
$rs = $db->query($sql);
这样就OK了,你重新写一条数据进去,再查一下试试。
希望我的答案能帮到你,:)
展开全部
<?php
$db=@new mysqli("localhost", "root", "123456","test");
if(mysqli_connect_errno()){
echo "数据库连接失败!<br>\n";
echo mysqli_connect_error();
exit;
}
mysql_query("set names gb2312");
$db=@new mysqli("localhost", "root", "123456","test");
if(mysqli_connect_errno()){
echo "数据库连接失败!<br>\n";
echo mysqli_connect_error();
exit;
}
mysql_query("set names gb2312");
追问
大大 这个不行啊!
运行时报错啊!!
Fatal error: Call to undefined function mysql_query() in D:\Mysite\Study\try.php on line 9
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
编码问题,把utf8改成gb2312再试试
追问
怎么改最后面那个utf8???
用set character_set_system utf8改不了。。。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询