Количество Количество записей в наборе записей sqlite3 - PullRequest
0 голосов
/ 19 января 2011

Проблема: я использовал sqlite 2.1 db с php, используя объект SQLiteDatabase в PHP, сейчас я обновляюсь до sqlite 3.x, поэтому я также хочу использовать SQLite3 в PHP, есть проблема, с которой я столкнулся ранееОбъект SQLiteDatabase Я легко подсчитывал количество возвращаемых записей, выполняя запросы к базе данных, но теперь с SQLite3 я не могу сделать то же самое.

Пример старого кода с SQLiteDatabase:

$base= new SQLiteDatabase('users.db');
$query = 'select id from users';
$results = $base->query($query, SQLITE_ASSOC);
echo sizeof($results);

Вывести этогенерация кода

50

Пример старого кода с новым SQLite3:

$base = new SQLite3('users.db');
$query = 'select id from users';
$results = $base->query($query);
echo sizeof($results);

Но приведенный выше код возвращает это:

1

Вместо 50 он показывает 1,

В: Как я могу вычислить количество строк в наборе записей ($ results) в SQLite3?

Ответы [ 3 ]

0 голосов
/ 01 марта 2011

Я только что нашел интересную статью о том, как это сделать. Это немного навязчиво, но это работает. В основном, используйте PDO с SQLite3 вместо того, чтобы использовать его напрямую. PDO предоставляет вам метод fetchAll (), который вы затем можете вызвать count ().

Ссылка: http://blog.digitalneurosurgeon.com/?p=947

0 голосов
/ 04 мая 2012

Если вам не нужен сам результат, а только количество строк, я рекомендую сделать подсчет SQLite, то есть:

$count=$base->querySingle("SELECT count(id) FROM users") 

сохранит количество строк в пользователетаблицы в переменной $count.

Кроме того, будет работать цикл по $results->fetchArray() и увеличивать счетную переменную.

0 голосов
/ 19 января 2011

Я не знаю, какой именно API вы используете, но есть вероятность, что $ results там содержит только «истинное» значение, означающее, что запрос обрабатывается, я не знаю, как вы получаете свои результаты,проверьте свой API.Я думаю, что это ссылка http://us.php.net/manual/en/book.pdo.php

, очевидно, вы должны сделать что-то похожее на $ lines-> fetch (PDO :: FETCH_OBJ) -> row;но в любом случае вам нужно получить результаты из объекта.

Прочитайте ваш API.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...