第一次使用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']
?
谢谢
答案 0 :(得分:0)
fetcharray
包含numerical array
和associative 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)
- 行是带有数字索引的数组。