日期:2014-05-17  浏览次数:20502 次

用户数据的重复,我这个对于$result是不是理解错了?
$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

是这种处理方法有问题吗? 应该如何解决呢? 麻烦解答下,谢谢

------解决方案--------------------
if( mysql_num_rows($result1) > 1) {

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

------解决方案--------------------
可以直接if($result1) {
------解决方案--------------------
php手册中::mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。

也就是说:它只能说明你的sql语句是否执行成功,要是基于这一点,楼上的方法就可以,如果是其他insert或者update语句,就不行了,“很有可能一条查询执行成功了但并未影响到或并未返回任何行。”