我遇到mysql_fetch_array的问题。我试图这样做:
if(count(mysql_fetch_array(mysql_query($peticion)))) {
array_push($errores, $texto['conta_existe']);
}
前面的代码应该检测mysql_fetch_array是否在我的数据库中找到了一行,如果找到了至少一行,则应该推送一个数组。问题是,如果我的数据库中没有任何内容,则fetch_array返回数字" 1"。
我试图通过这种代码安静来发现正在发生的事情:
$arrayc = mysql_fetch_array(mysql_query($peticion), MYSQL_NUM);
echo 'PRINT_R: ';
echo print_r($arrayc);
echo '<br>COUNT: ';
echo count($arrayc);
并返回:
PRINT_R:数组([0] =&gt; FLEREX [conta] =&gt; FLEREX)1
COUNT:2
我不明白为什么在阵列之后那里有第一号。之前的报价只返回一行,以显示数组;但如果数据库中没有任何行,这就是我得到的:
PRINT_R:1
COUNT:1
我不知道那个来自哪里,但总是在那里。
感谢阅读并抱歉我的英语不好。
答案 0 :(得分:1)
尝试mysql_num_rows而不是count并删除mysql_fetch_array
答案 1 :(得分:0)
mysql_fetch_array
不返回所有结果的数组,只返回下一行结果,如果没有结果,则返回false
。因此count()
返回列数乘以2(因为数组包含数字和关联条目)。
使用mysql_num_rows
获取结果中的行数。
if (mysql_num_rows(mysql_query($peticion))) {