mysql_fetch_array返回一个数组和数字" 1"

时间:2014-04-18 16:41:53

标签: php mysql arrays

我遇到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

我不知道那个来自哪里,但总是在那里。

感谢阅读并抱歉我的英语不好。

2 个答案:

答案 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))) {