Я выполняю рефакторинг части приложения PHP, которое использует adodb в качестве библиотеки db, чтобы начать использовать PDO.
Мне нужно что-то, что дает мне количество строк, включенных в набор записей select, что-то, что может легко заменить старый метод $rs->RecordCount()
adodb, который я использовал ранее. Должно работать на sqlite3.
Я не могу просто повторно выполнить запрос (или повторно выполнить запрос, используя select count(*)
), потому что я не могу так сильно изменить исходное приложение, приложение во многих частях вызывает функцию get_num_rows($rs)
( который содержит только $rs->RecordCount()
), и я могу просто изменить содержимое этой функции.
Я попытался клонировать объект набора записей и сосчитать выбранные записи:
function get_num_rows($rs)
{
$rs_copy = clone $rs;
return (count($rs_copy->fetchAll()));
}
но это не работает, потому что $rs_copy->fetchAll()
возвращает меня false
. Я не могу сделать это на исходном наборе записей, потому что позже в приложении мне нужно получить его снова, и я думаю, что в PDO sqlite нет способа повторно использовать набор записей (поправьте меня, если я ошибаюсь).
У вас есть какие-нибудь решения?