PHP - SQLite意外返回数组结果

时间:2017-04-25 08:02:06

标签: php sqlite

第一次使用SQLite时,我创建了一个数据库和表,并将列id设置为primary key unique

我已经在表格中插入了一些数据,并且可以在我这样做时看到数据:

SELECT * FROM members;

然而,当我运行以下查询时,我没有得到我期望的结果。

$result = $db->query("SELECT * FROM members WHERE plan = 'User' AND id = '$users_id'");
    echo "<pre>";
    print_r($result->fetchArray());
    echo "</pre>";

我明白了:

Array
(
    [0] => 124578986532-784512986452
    [id] => 124578986532-784512986452
    [1] => User
    [plan] => User
    [2] => 54890
    [phone] => 54890
    [3] => 698-78450
    [staffID] => 698-78450
    [4] => WestWing
    [location] => WestWing
    [5] => 1
    [active] => 1
)

哪个是正确的结果,但为什么我会为每个返回的条目获得重复项?

ie:为什么[0] & [id][1] & [plan] ??

由于每个用户ID都是唯一的搜索,它只返回一个结果集,如何将结果用作我可以在页面中其他地方使用的变量?

例如:$id = $result['id']

谢谢

1 个答案:

答案 0 :(得分:0)

fetcharray包含numerical arrayassociative array,因此您的结果应为

对于命名索引数组

$result = $db->query("SELECT * FROM members WHERE plan = 'User' AND id = '$users_id'");
echo "<pre>";
print_r($result->fetchArray(PDO::FETCH_ASSOC));
echo "</pre>";

此处为交叉数据

$result->fetchArray(PDO::FETCH_BOTH) - 行是包含数字索引和命名索引的数组

$result->fetchArray(PDO::FETCH_ASSOC) - 行是具有命名索引的数组。

$result->fetchArray(PDO::FETCH_NUM) - 行是带有数字索引的数组。