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

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

WBOY
WBOYOriginal
2016-06-13 13:14:43934Durchsuche

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

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("数据库所用编码编码”);
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn