如何将sql结果从一个变量复制到另一个变量

Mic*_*ael 3 php

如何在SQL结果从一个变量复制其他无阵列和foreachPHP.

$query="Select * from table";
$res1=mysql_query($query);
$res2=$res1; // I need somethink like this, simply, like in other languages
while($row=mysql_fetch_array($res1)) {
echo $row['Id'];
}
echo '<br>';
while($row=mysql_fetch_array($res2)) {
echo $row['Id'];
}
Run Code Online (Sandbox Code Playgroud)

首先将打印id,第二次不打印.

Raj*_*aul 6

对于SELECT查询,mysql_query()返回成功资源,这是一个包含对结果集的引用的特殊变量.在此语句中,$res2=$res1;您只是将引用复制到另一个变量,而不是实际的结果集.在第一个while循环中,您已经迭代了结果集,因此将资源分配给另一个变量将不会重置它.

但是您可以使用mysql_data_seek()函数将结果指针调整为指向结果集的开头,以便您可以再次迭代它.

这是参考:

所以你的代码应该是这样的:

$query="Select * from table";
$res=mysql_query($query);

while($row=mysql_fetch_array($res)) {
    echo $row['Id'];
}
echo '<br />';

mysql_data_seek($res, 0);

while($row=mysql_fetch_array($res)) {
    echo $row['Id'];
}
Run Code Online (Sandbox Code Playgroud)

旁注:不要使用mysql_*函数,它们从PHP 5.5开始就被弃用,并在PHP 7.0中被完全删除.使用mysqlipdo代替.这就是你不应该使用mysql_*函数的原因.