php+mysql 程序 中文显示成???

mysql中数据库3个字段,其中一个为中文内容(姓名),建库的时候三个字段都设定为varchar类型正常连接数据库后,使用select语句对符合条件的记录进行输出,发现那... mysql 中数据库3个字段,其中一个为 中文内容(姓名),建库的时候三个字段都设定为 varchar 类型
正常连接数据库后,使用select 语句对符合条件的记录进行输出,发现 那个中文内容的字段(姓名) 输出为 ??? 请问怎么处理。
另外,使用<input type="text" name="username" maxlength=26 size=18>语句接收 中文字段内容,再使用 select 语句 对数据库中中文字段内容进行对比查询,出错,感觉好象是 ???导致的,请问怎么处理。
1、index.php文件中部分内容:
<form method="post" action="xm.php" font-size: 13px">
姓 名:
<input type="text" name="username" maxlength=26 size=18>
<input class="button" type="submit" name="submit">
<input class="button" type="reset" name="reset">
2、xm.php文件内容
<?php
mysql_connect("localhost","root","123456");//连接数据库
mysql_select_db("`jjga`.`humaninfo`");//选择数据库
$name = $_POST['username'];
echo $name;
$sql="select * from `jjga`.`humaninfo` where `username`=$name";
$result=mysql_query($sql);

if($row = mysql_fetch_array($result)){
do{
print $row["idcode"];
print(" ");
print $row["username"];
print(" ");
print $row["onlinetime"];
print ("<p>");
}while($row = mysql_fetch_array($result));
}
else {print "没有找到符合的记录。";}

输入中文进行查询,直接出错:Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
输入数字进行查询,不出错。
展开
 我来答
lishifan
2010-05-03 · TA获得超过350个赞
知道小有建树答主
回答量:243
采纳率:0%
帮助的人:393万
展开全部
这个问题一般是字符集不统一造成的。要彻底解决这个问题,请做好如下几个工作:
设编码统一为 utf8
1.数据库的编码。
建库或建表时,指定编码为 utf8

2.网页的编码设置为 utf-8 ---请注意这是不是 utf8 而是 utf-8

3.在连接完数据库,执行其它之前加一句 mysql_query("set names utf8");

经过这样处理,应该能够出来你要的结果了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
elysion122
2010-05-05
知道答主
回答量:14
采纳率:0%
帮助的人:7.7万
展开全部
首先,在数据库中插入中文字符的时候,应该把字符集设置成utf8。
其次,php文件链接数据库的语句之后添加如下语句
mysql_query("SET NAMES GBK");
这样插入的中文字符就不会显示???了。
正确的插入中文后,搜索中文自然不会出现问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
鬼狼手
2010-05-04 · TA获得超过189个赞
知道小有建树答主
回答量:229
采纳率:0%
帮助的人:146万
展开全部
你这有两个问题:
1-显示中文时的???
这是显示部分的编码问题,在xm.php显示输出前加一行
echo header("Content-Type: text/html; charset=gb2312");
如果不可以,还要检查你的数据库编码,建表的时候选择utf8

2-报错的问题:
将这行语句
$sql="select * from `jjga`.`humaninfo` where `username`=$name";
改为
$sql="select * from `jjga`.`humaninfo` where `username`='".$name."'";

这可以防止sql的语法问题而且安全性更好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
请叫我落落
2010-05-09 · TA获得超过590个赞
知道答主
回答量:89
采纳率:0%
帮助的人:44.2万
展开全部
看下数据库的编码是不是中文编码,不是就改成中文编码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
他如之i
2010-05-03
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
utf-8
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式