2010-10-16 109 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