Используя SQlite3 в PHP, как считать количество строк в наборе результатов?

в настоящее время я использую:

$result = new SQLite3(sprintf("users/USERIDS_DB.sqlite"));

$numRows = $result->exec ("SELECT count(*) FROM USERIDS");

echo sprintf("the number of rows are: %d", $numRows);

но результат равняется 1, когда это должно быть 6 (количество строк, я создал дополнение firefox sqlite3 использования),

Кто-либо может помочь?

8
задан Remover 6 April 2010 в 17:02
поделиться

1 ответ

Из документации:

public bool SQLite3::exec ( string $query )

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

Этот метод возвращает булево значение, а не набор результатов. При преобразовании true в целое число оно станет 1.

Вы должны использовать SQLite3::query(). Пример (не проверен):

$rows = $result->query("SELECT COUNT(*) as count FROM USERIDS");
$row = $rows->fetchArray();
$numRows = $row['count'];

Кстати, именование экземпляра класса SQLite3 $result может ввести в заблуждение (особенно в среде БД). Я бы назвал его $db или $connection.

9
ответ дан 5 December 2019 в 05:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: