2010-10-16 79 views
0

是否有任何方法来复制函数产生的资源,如mysql_query?复制php资源

可能再次声音哑,但我想重用这样的资源,这样我就不会重新输入的mysql_query(),并再次只使用具有例如

$rsrc = mysql_query('SELECT * FROM `table` LIMIT 0,1'); 
$rows = mysql_fetch_array($rsrc); 
print_r($rows); 

,当你取一个resource..like一种资源,它的价值就会消失(这就是我认为) 我想做的事是重用它甚至again.i试过..

$rsrc = mysql_query('SELECT * FROM `table` LIMIT 0,1'); 
$rsrc_copy = $rsrc; 

回答

2

当你获取的资源,它的价值就会消失(这就是我认为的)是我想要做的是重用它甚至again.i试过..

你是什么体验不是价值消失,而是结果的内部数据指针moving one row ahead

理论上可以使用mysql_data_seek()来移动内部数据指针,但这样做很少实际。我从来没有见过这用于真实世界的应用程序。而是重复使用您获取的结果,例如通过将行存储在数组中。

+0

问题是我有这些函数..get_rows($ resource)和get_cell($ resource)这就是为什么我想重用他们xD – kapitanluffy 2010-10-16 10:20:24

+0

@ kapitan那么也许你需要重写这些功能。这不是一个好主意,干涉资源 – 2010-10-16 10:22:14

+0

是我我不打算重写mysql :: select()然后它会返回一个数组已经不是资源..或者我可以使返回资源作为可选参数谢谢:) – kapitanluffy 2010-10-16 10:23:55

0

你不需要重复使用的资源。您可以重复使用这些行。

0

将结果放入一个数组中,并根据需要多次使用它。

$results = array(); 
$qry = mysql_query("SELECT * from ..."); 
while($row = mysql_fetch_array($qry)){ 
    $results[] = $row; 
} 

// use the $results array 
+0

我已经有这些函数..get_rows和get_cell问题是他们都使用param $资源 – kapitanluffy 2010-10-16 10:18:18

+0

在这种情况下,我认为Pekka的答案应该足够。 – 2010-10-16 10:19:56

+0

@kapitanluffy他们使用'$ resource'并不重要。你将能够使用后面的'$ results',你将不再需要'$ resource' – 2010-10-16 10:20:14