0){echo "有重复号码";echo &q"/> 0){echo "有重复号码";echo &q">

 >  기사  >  백엔드 개발  >  用户数据的重复,小弟我这个对于$result是不是理解错了

用户数据的重复,小弟我这个对于$result是不是理解错了

WBOY
WBOY원래의
2016-06-13 13:20:18892검색

用户数据的重复,我这个对于$result是不是理解错了?
$sql1="select * from user where mencode='$mencode'";
$result1=mysql_query($sql1,$con);
if(count($result1)>0){
echo "有重复号码";
echo "
";
echo count(null);
echo "
";
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语句,就不行了,“很有可能一条查询执行成功了但并未影响到或并未返回任何行。”

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.