>백엔드 개발 >PHP 튜토리얼 >一个关于mysql_fetch_array的问题

一个关于mysql_fetch_array的问题

WBOY
WBOY원래의
2016-06-23 14:22:56787검색

当我们获取数据库多行记录时,一般都做循环
while ($arr = mysql_fetch_array($result,MYSQL_ASSOC)){
    var_dump($arr);
}
但是当这么写的时候就会发生错误
$arr = mysql_fetch_array($result,MYSQL_ASSOC);
while($arr){
    var_dump($arr);
}
我知道,形参$arr被强制转换成了字符串,我个人臆测mysql_fetch_array后得到的是一个resource类型,不知道对不对,请各位指教。另外,如果属实,怎么把$arr在赋值时定义为资源变量?


回复讨论(解决方案)

$arr = mysql_fetch_array($query,MYSQL_ASSOC); while(list($k, $v) = each($arr)){//改成这样,不然直接$arr没有条件,mysql_fetch_array是有指针的 	     var_dump($arr);  }

用PDO statement

$arr = mysql_fetch_array($result,MYSQL_ASSOC);//直接while ($arr = mysql_fetch_array($result,MYSQL_ASSOC))可以是因为有指针 while(list($k, $v) = each($arr)){//改成这样,不然直接$arr没有条件,会一直执行,所以会出错 	     var_dump($arr);  }

$arr = mysql_fetch_array($result,MYSQL_ASSOC);//直接while ($arr = mysql_fetch_array($result,MYSQL_ASSOC))可以是因为有指针 while(list($k, $v) = each($arr)){//改成这样,不然直接$arr没有条件,会一直执行,所以会出错 	     var_dump($arr);  }
谢谢,不过我知道可以这么实现,我想问的不是怎么实现,而是想知道fetch_array得到的是什么类型以及如何赋值为资源变量

mysql_fetch_array 得到的是数组
你可以用 gettype 观察到
转换数据类型可用 settype 函数

但不可能转换成资源!
手册中明确的说:由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。

mysql_fetch_array 得到的是数组
你可以用 gettype 观察到
转换数据类型可用 settype 函数

但不可能转换成资源!
手册中明确的说:由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。 多谢!受教了

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.