Heim > Backend-Entwicklung > PHP-Tutorial > 一个关于mysql_fetch_array的问题

一个关于mysql_fetch_array的问题

WBOY
Freigeben: 2016-06-23 14:22:56
Original
793 Leute haben es durchsucht

当我们获取数据库多行记录时,一般都做循环
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);  }
Nach dem Login kopieren

用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);  }
Nach dem Login kopieren
Nach dem Login kopieren

$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);  }
Nach dem Login kopieren
Nach dem Login kopieren
谢谢,不过我知道可以这么实现,我想问的不是怎么实现,而是想知道fetch_array得到的是什么类型以及如何赋值为资源变量

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

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

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

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

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage