为什么空的数据库 也会提示“用户名被占用”?求解哈

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpw = 'root';
$dbcharset = 'gb2312';
$tablepre = 'nu_';
//连接MySQL数据库
$link = mysql_connect($dbhost,$dbuser,$dbpw);
if(!$link)
{
echo "数据库连接失败"."</br>";
die();
}
mysql_query("set names ".$dbcharset,$link);
//定位数据库
if(!mysql_select_db($dbname,$link))
{
echo "无法定位数据库"."</br>";
mysql_close($link);
die();
}
//检查相关注册信息是否已经被占用
$query="select * from ".$tablepre."common_members"." where username ='".$_POST['reg_username']."'";
$result=mysql_query($query,$link);
if(mysql_fetch_object($result))
{
echo '<script type="text/javascript">alert("用户名已被占用 ,请重新输入!");location.replace("../reg/index.php");</script>';
die();
}
?>

慕容3067478
浏览 69回答 2
2回答

繁华开满天机

用mysql_num_rows()吧,判断>0则说明注册了的,否则就没注册。mysql_fetch_object()一般是用来 输出 内容的,而不是进行判断的。-----------------------<?phpmysql_connect("hostname", "user", "password");mysql_select_db("mydb");$result = mysql_query("select * from mytable");while ($row = mysql_fetch_object($result)) {echo $row->user_id;echo $row->fullname;}mysql_free_result($result);?>

蝴蝶刀刀

不要用mysql_fetch_object()这个函数来判断,这个返回来的是个数组;一般情况下是这么来判断的:$query="select * from ".$tablepre."common_members"." where username ='".$_POST['reg_username']."'";$result=mysql_query($query,$link);$num = mysql_num_rows($result); //取得结果集中行的数目if($num){echo '<script type="text/javascript">alert("用户名已被占用 ,请重新输入!");location.replace("../reg/index.php");</script>';die();}
打开App,查看更多内容
随时随地看视频慕课网APP