Php mysql“U fetch”数组返回一个数组和数字;1“;
我对mysql\u fetch\u数组有问题。我正在尝试这样做:Php mysql“U fetch”数组返回一个数组和数字;1“;,php,mysql,arrays,Php,Mysql,Arrays,我对mysql\u fetch\u数组有问题。我正在尝试这样做: if(count(mysql_fetch_array(mysql_query($peticion)))) { array_push($errores, $texto['conta_existe']); } 前面的代码应该检测mysql\u fetch\u数组是否在我的数据库中找到一行,如果至少找到一行,则应该推送一个数组。问题是,如果我的数据库中没有任何内容,fetch_数组将返回数字“1” 我试图找到这种代码的平静是怎
if(count(mysql_fetch_array(mysql_query($peticion)))) {
array_push($errores, $texto['conta_existe']);
}
前面的代码应该检测mysql\u fetch\u数组是否在我的数据库中找到一行,如果至少找到一行,则应该推送一个数组。问题是,如果我的数据库中没有任何内容,fetch_数组将返回数字“1”
我试图找到这种代码的平静是怎么回事:
$arrayc = mysql_fetch_array(mysql_query($peticion), MYSQL_NUM);
echo 'PRINT_R: ';
echo print_r($arrayc);
echo '<br>COUNT: ';
echo count($arrayc);
$arrayc=mysql\u fetch\u数组(mysql\u查询($peticion),mysql\u NUM);
回音“PRINT_R:”;
回音打印(arrayc);
回显“
计数:”;
回波计数($arrayc);
并返回以下内容:
打印:数组([0]=>FLEREX[conta]=>FLEREX)1
计数:2
我不明白为什么在阵列之后会有第一个。上一个引号仅返回一行,以显示数组;但如果数据库中没有任何行,我得到的是:
打印:1
计数:1
我不知道从哪里来的,但总是在那里
感谢阅读并为我的英语不好感到抱歉。
mysql\u fetch\u array
不返回所有结果的数组,它只返回下一行结果,如果没有更多结果,则返回false
。因此count()
返回列数乘以2(因为数组包含数字和关联项)
使用mysql\u num\u rows
获取结果中的行数
if (mysql_num_rows(mysql_query($peticion))) {
尝试mysql_num_rows而不是count,并删除mysql_fetch_数组($arrayc)代码>
print\u r($arrayc)
输出$arrayc
的值,并返回booleamtrue
;然后,您将回显返回的值,并显示为1
remove echo hereecho print\r($arrayc)
只是一个提示,开始使用PDO或mysqli函数。它们更安全,mysql_*函数(将会?)被弃用。mysql_*从PHP5开始就被弃用了。5@Bono从PHP5.5.0开始,这个扩展就被弃用了。我们同时发布了我们的答案。