На самом деле я выполнил запрос postgres, предположим, что он возвратил 10 строк. Теперь у меня есть обработчик инструкции ($ sth).perl dbi: fetchrow_arrayref
print Dumper $sth->fetchrow_arrayref;
print Dumper $sth->fetchrow_arrayref;
print Dumper $sth->fetchrow_arrayref;
print Dumper $sth->fetchrow_arrayref;
print Dumper $sth->fetchrow_arrayref;
Теперь, я принес в 5 строк из обработчика заявления ($ sth- .Теперь я хочу получить обратно $ ссылочный STH указатель на 1-й строки .....
Что делать ....?
Благодаря
Будет ли это работать? Мне сказали, что для arrayref каждый раз используется один и тот же массив. поэтому вы не можете сохранить ссылку на массив и использовать ее позже, поскольку данные позади нее будут перезаписаны. Но я пытаюсь это подтвердить. – Jonathon
Просто проверил тест, и я могу проверить, по крайней мере, в некоторых случаях вы не можете просто сохранить ссылку. Поскольку это одна и та же ссылка каждый раз. В документации сказано следующее: «Обратите внимание, что для каждой выборки возвращается эта же ссылка на массив, поэтому не храните ссылку и не используйте ее после более поздней выборки. Кроме того, элементы массива также используются повторно для каждой строки, поэтому будьте осторожны, если хотите взять ссылку на элемент ». Не то, чтобы что-то не так с этим точным примером, просто сочетая его с оригинальным кодом плакатов. – Jonathon
Да, если вы выберете одну строку, вы не захотите сохранить эту ссылку, поскольку она будет повторно использоваться при получении следующей. Однако «fetchall» должен быть безопасным. – Thilo