$sql1="select * from user where mencode='$mencode'";
$result1=mysql_query($sql1,$con);
if(count($result1)>0){
echo "有重复号码";
echo "<br>";
echo count(null);
echo "<br>";
echo count($result1);        //这里等于1??
}
else{
//注册  插入数据库的语句
}这个$reuslt1 返回的应该是空集啊   为什么输出 count($reslut1)的值为1是这种处理方法有问题吗?  应该如何解决呢? 麻烦解答下,谢谢

解决方案 »

  1.   

    if( mysql_num_rows($result1) > 1) {注意:
    $result1 是变量,只要他不是数组,那么 count($result1) 的结果都是 1
    $result1 = mysql_query($sql1,$con); 后, $result1 是资源。通俗一点就是结果集的指针
      

  2.   

    php手册中::mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。也就是说:它只能说明你的sql语句是否执行成功,要是基于这一点,楼上的方法就可以,如果是其他insert或者update语句,就不行了,“很有可能一条查询执行成功了但并未影响到或并未返回任何行。” 
      

  3.   

    感谢注解   是我对count的理解出现问题不过  应该是if( mysql_num_rows($result1) > 0)吧