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

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

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

WBOY
WBOYOriginal
2016-06-13 13:20:18845browse

用户数据的重复,我这个对于$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语句,就不行了,“很有可能一条查询执行成功了但并未影响到或并未返回任何行。”

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn