数据库查询中一个百思不得其解的有关问题,有详细说明

WBOY
发布: 2016-06-13 13:14:43
原创
934 人浏览过

数据库查询中一个百思不得其解的问题,有详细说明!
源代码:

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
$sql="select * from tb_user where nicheng='".$uname."'";
$re=mysql_query($sql,$conn);
//echo $sql;
//exit();
$info=mysql_fetch_array($re);
if($info==true)
 {
   echo "<script>alert('该昵称已经存在!');history.back();</script>";
   exit;
 }
登录后复制

测试时总是出错,并且提示:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result (错误在“$info=mysql_fetch_array($re);”

sql语句没有错误,利用echo输出在mysql执行过!同是也发现,当我把条件设置成字段的值为数字的字段时(如:“where id='".$uname."'";”或者“where id='".$uname."'";”)执行正常!当条件字段的值为中文时(如nicheng,xingming,xingbie),执行就报以上错误!
所以我估计是编码问题,但是我用echo输出看了,中文显示正常!数据库中的中文也是显示正常!

数据库是:
id xingming xingbie buji ruxue banji mima ip shijian nicheng  
 1 张三 男 初中 2011 05 2134 NULL NULL 小三 


结构为:
  id int(11) 否 auto_increment  
  xingming varchar(8) utf8_bin 是 NULL  
  xingbie varchar(2) gb2312_chinese_ci 是 NULL  
  buji varchar(4) gb2312_chinese_ci 是 NULL  
  ruxue varchar(4) gb2312_chinese_ci 是 NULL  
  banji varchar(2) gb2312_chinese_ci 是 NULL  
  mima varchar(50) gb2312_chinese_ci 是 NULL  
  ip varchar(15) gb2312_chinese_ci 是 NULL  
  shijian datetime 是 NULL  
  nicheng varchar(25) utf8_bin 否 


------解决方案--------------------
能echo看看$uname值是什么么?
------解决方案--------------------
页面编码是什么?
------解决方案--------------------
楼主是要进行判断昵称的重复性吧?
换成这样试试呢

$sql="select * from tb_user where nicheng='".$uname."'";
$result=mysql_query($sql);
if(mysql_num_rows($result)>0){
echo "昵称已经存在";
}
else {
//进行插入数据的操作
}

如果你觉得是编码问题,你看看链接数据库那有没有这样类似的语句
mysql_query('set names utf8');
------解决方案--------------------
$re=mysql_query($sql,$conn) or die(mysql_error()); //这样报什么错
------解决方案--------------------
你数据库用的什么编码?
加上这句试试
mysql_set_charset("数据库所用编码编码”);
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!