SQLite3返回索引和关联数组

时间:2015-04-03 16:53:22

标签: php sqlite

我在PHP中有一个SQLite查询:

$database = new SQLite3("database.db");
$statement = $database->prepare("SELECT * FROM table");
$result = $statement->execute();
$table = array();
while ($row = $result->fetchArray()) {
    array_push($table, $row);
}
var_dump($table);

并输出

array(2) {
    [0]=> array(4) {
        [0]=> int(1)
        ["event"]=> int(1)
        [1]=> string(2) "A1"
        ["code"]=> string(2) "A1"
    }
    [1]=> array(4) {
        [0]=> int(5)
        ["event"]=> int(5)
        [1]=> string(2) "A2"
        ["code"]=> string(2) "A2"
    }
}

哪个是正确的数据,但是它输出了两次所有信息:一个附加了索引,另一个附有列名。有没有办法选择其中一个?这个程序需要非常高效,因为它将扩展到有数千行。

2 个答案:

答案 0 :(得分:0)

SQLite的fetchArray函数可以采用mode参数。您可以使用SQLITE3_ASSOCSQLITE3_NUMSQLITE3_BOTH获得所需的效果。我想在发布之前我应该​​查看文档:)

答案 1 :(得分:0)

这将为您提供常规的mysql样式的关联数组输出

$db = new SQLite3('dbs');

$result = $db->query("SELECT * FROM table");

$assoc_array = array();

while ($dbs_row = $result->fetchArray(SQLITE3_ASSOC)) {
    $assoc_array[] = $dbs_row;
}