我有一个问题。我可以将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']." ";
}
上述代码是否完全正确?请分享你的想法。
干杯,
简森。
答案 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包含有关使用非弃用代码的好建议