在PHP中使用SQlite3如何计算结果集中的行数?

Rem*_*ver 8 php sqlite count

目前我正在使用:

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

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

echo sprintf("the number of rows are: %d", $numRows);
Run Code Online (Sandbox Code Playgroud)

但结果是1,它应该是6(我用firefox sqlite3插件创建的行数)

有人可以帮忙吗?

Rob*_*mer 19

$db = new SQLite3('filename.db3');
$count = $db->querySingle("SELECT COUNT(*) as count FROM tablename");
echo $count;
Run Code Online (Sandbox Code Playgroud)


Fel*_*ing 9

文档:

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'];
Run Code Online (Sandbox Code Playgroud)

顺便说一下,命名SQLite3类的实例$result可能会产生误导(特别是在数据库环境中).我会称之为$db$connection.


小智 5

$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
    }
Run Code Online (Sandbox Code Playgroud)