这很有效,除了最后一行总是返回false。我在我的网站中多次使用它,无论我运行什么查询,最后一行总是返回false而不是最后一行中的数据。
因此,如果我有一个应返回2行的查询,则返回1行并返回false。我不确定为什么。
function query2array($query, $sql_con) {
$result = mysql_query($query,$sql_con);
if(!$result) {
return false;
}
else if (mysql_num_rows($result) > 0) {
//set entire result to array
while($arr_data[] = mysql_fetch_array($result));
var_dump($arr_data);
if(count($arr_data) > 0) {
return $arr_data;
}
}
return false;
}
我是PHP新手,我已经阅读了mysql_fetch_array的文档,似乎无法弄清楚这里出了什么问题。 (我也知道我应该使用mysqli,但我选择了其他人开发的网站)
答案 0 :(得分:3)
试试这个:
while($row = mysql_fetch_array($result))$arr_data[] = $row;
此类行为的原因是您将mysql_fetch_array()
结果附加到数组,而不检查它是否已成功检索。
截至manual
:
返回与获取的行对应的字符串数组,或 如果没有更多行,则为FALSE。
注意: MySQL
( mysql * _ functions)扩展名为deprecated。我建议改用MySQLi
( mysqli * _函数)或PDO
。