我可以将PHP MySQL资源变量分配/复制到其他吗?

时间:2013-03-26 11:55:25

标签: php mysql variables resources

我有一个问题。我可以将PHP MySQL资源变量分配给其他人吗?

对于例如。

$query=mysql_query("SELECT * FROM sometable",$dbconn) or die("Wheewww!"); //$query, Resource variable

while($result=mysql_fetch_assoc($query))
 {
   echo $result['somefield']." ";
 }

$query_new=$query;  //Assigning mysql resource variable to other

while($result_new=mysql_fetch_assoc($query_new))
 {
   echo $result_new['somefield']." ";
 }

上述代码是否完全正确?请分享你的想法。

干杯,
简森。

2 个答案:

答案 0 :(得分:4)

是的,你可以做得很好,但对你没有任何帮助。您已经迭代了结果集,将资源分配给另一个变量将不会重置它。您必须使用mysql_data_seek重置结果集中的光标。

您还应该停止使用适用于MySQL的已弃用的 API并转移到PDO或Mysqli。

答案 1 :(得分:3)

这应该没问题,你只是将两个变量指向同一个资源。但是,在循环遍历$ query_new之前,您必须使用mysql_data_seek(http://www.php.net/manual/en/function.mysql-data-seek.php)重置内部数据指针

编辑:deceze answer包含有关使用非弃用代码的好建议