PHP中怎样使用MYSQL查询语句判断字段中是否存在指定数据

<?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();
}
?>
为什么空的数据库 也会提示“用户名被占用”?

不要用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();}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-11
其实很简单的!!有个函数是is_array();他可以判断是不是数组,只要查询返回是数组的话!!就是被注册了!
第2个回答  2013-10-11
用mysql_num_rows()吧,判断>0则说明注册了的,否则就没注册。mysql_fetch_object()一般是用来 输出 内容的,而不是进行判断的。-----------------------<?php
mysql_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);
?>