дублирование ресурсов php - PullRequest
0 голосов
/ 16 октября 2010

Есть ли способ дублировать ресурсы, создаваемые такими функциями, как mysql_query?

это может показаться глупым, но я хотел повторно использовать такие ресурсы, чтобы не повторять mysql_query () снова и снова, просто чтобы использовать ресурс ... как, например,

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

когда вы выбираете ресурс, его значение исчезает (я так думаю) то, что я хотел сделать, это использовать его снова. Я даже пытался ..

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

Ответы [ 3 ]

2 голосов
/ 16 октября 2010

когда вы извлекаете ресурс, его значение исчезает (я так думаю), что я хотел сделать, это снова использовать его. Я даже пытался ..

Вы испытываете не исчезновение значения, а внутренний указатель данных результата на одну строку вперед .

Теоретически возможно перемещать внутренний указатель данных, используя mysql_data_seek(), но это редко бывает практичным. Я никогда не видел, чтобы это использовалось в реальных приложениях. Скорее повторно используйте полученный результат, например, сохраняя строки в массиве.

0 голосов
/ 16 октября 2010

Поместите результат в массив и используйте его столько раз, сколько захотите.

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

// use the $results array
0 голосов
/ 16 октября 2010

Вам не нужно повторно использовать ресурс. Вы можете повторно использовать строки.

...