Использование 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)

Может ли кто-нибудь помочь, пожалуйста?

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

public bool SQLite3 :: exec (строка $ query)

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

Эти методы возвращают логический, а не набор результатов. Когда вы преобразуете true в целое число, оно станет равным 1 .

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

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

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

 $db = new SQLite3('filename.db3'); $count = $db->querySingle("SELECT COUNT(*) as count FROM tablename"); echo $count; 
 $result = $db->query("SELECT * FROM db_name") $row=$result->fetchArray(SQLITE3_ASSOC); // check for empty result if ($row != false) { // do something here if record exists } 
 <?php function SqliteNumRows($query){ $numRows = 0; while($rows = $query->fetchArray()){ ++$numRows; } return $numRows; } ?> 

Это действительно помогло мне это на самом деле вы можете попробовать

Вот рабочий способ получить количество строк, так как ни sqlite_num_rows($result) ни $result->numRows() работают на SQLite3:

 <?php $db = new SQLite3('database.db'); $results = $db->query('SELECT COUNT(*) FROM (SELECT `id`,* FROM `table` ORDER BY `id` ASC);'); while ($row = $results->fetchArray()) { echo $row["COUNT(*)"]; } ?>