我有一个看起来像这样的SQL查询:
public function get_data() {
$db = new databaseConnection();
$db->do_connection();
$this->uid = $_SESSION['uid'];
$query = "SELECT ut.level, ut.location, ui.quantity, ui.game_item_id
FROM user_table ut, user_inventory ui
WHERE ut.user_id = ui.user_id
AND ut.user_id = :user_id";
$args = array(
":user_id" => $this->uid
);
$db->safeQuery($query,$args);
$results = $db->safe_fetch_all_results();
if($results == null){
die ('Error with user data fetch');
}
var_dump($results);
return $results;
}
查询按我想要的方式工作,但由于某种原因,var_dump会显示返回的数据:
array (size=2)
0 =>
array (size=8)
'level' => string '1' (length=1)
0 => string '1' (length=1)
'location' => string '4554' (length=4)
1 => string '4554' (length=4)
'quantity' => string '2' (length=1)
2 => string '2' (length=1)
'game_item_id' => string '1' (length=1)
3 => string '1' (length=1)
1 =>
array (size=8)
'level' => string '1' (length=1)
0 => string '1' (length=1)
'location' => string '4554' (length=4)
1 => string '4554' (length=4)
'quantity' => string '1' (length=1)
2 => string '1' (length=1)
'game_item_id' => string '5' (length=1)
3 => string '5' (length=1)
正如您可以看到查询检索的每条记录一样,还会检索一个副本,一个带有字段名称,另一个带有索引号,如果您愿意的话。
当我执行嵌套的foreach语句时,我得到相同的结果,我得到重复的结果。
这是我的表的结构:
user_table表
user_ID PK
username
password
email
level
location
game_items表
game_item_is PK
item_name
user_inventory表
user_inventory_id PK
user_id FK
game_item_id FK
quantity
你们会碰巧知道为什么会这样吗?
由于
答案 0 :(得分:1)
这是标准行为...... 如果从结果集中获取数据,则可以选择通过关联(FETCH_ASSOC),索引或两者检索它(FETCH_BOTH)