php关系键错误

php关系键错误,php,mysql,pdo,Php,Mysql,Pdo,我在mysql中有几个表是通过关系连接的。每个都有自己独特的id和数据。只有在尝试查询它们时,我才得到一个奇怪的结果: (use print_r) Array ( [0] => Array ( [id] => 1 [0] => 1 [tbl2_id] => 1 [1] => 1

我在mysql中有几个表是通过关系连接的。每个都有自己独特的id和数据。只有在尝试查询它们时,我才得到一个奇怪的结果:

(use print_r)
Array ( [0] => Array ( [id] => 1 
                       [0] => 1 
                       [tbl2_id] => 1 
                       [1] => 1 
                       [tbl3_id] => 1 
                       [2] => 1 
                       [3] => 1 
                       [name] => name1 
                       [4] => name1 
                       [surname] => ...
                     )
         )
我不想这样等等

例如,它应该如下所示:

 (use print_r)
 Array ( [0] => Array ( [id] => 1 
                        [tbl1_id] => 1 
                        [tbl2_id] => 1 
                        [tbl2_tbl1id] => 1 
                        [tbl3_id] => 1 
                        [tbl2_tbl1id] => 1  ...
                      )
       )
或者类似的东西。我使用PDO,当它调用sql时,如下所示:

SELECT * 
FROM `tbl` 
  INNER JOIN (tbl2, tbll) 
   ON tbl.tbl1_id=tbl1.id 
      AND tbl.tbl2_id=tbl2.id 
WHERE 1 
在mysql中使用后,会得到如图所示的效果(在数据库上运行SQL查询)


这看起来像是您正在使用PDOStatement::fetch(),fetch_样式设置为PDO::fetch_BOTH——这是默认设置

使用PDO::FETCH_ASSOC作为FETCH_样式,您应该得到您想要的

$result = $sth->fetch(PDO::FETCH_ASSOC);
print_r($result);

数据库有一些变化,但主要是一个feed而不是id,建议写$row['tbl1.id']或$row['tbl2.id'],而不是在mysql中显示我两次“id”,打印显示为[0]或[1],所以一旦你能提供代码来显示你如何查询并得到结果吗?现在可以工作了,但不像我想要的那样,问题是,我的意思是,剩下的两个版本的“id”或其他表格,如“name”,只是为了使它们受到区别对待,因为我有一个用户表格,其中您是“name”,我有一个表格tbl1,其中您也是“name”,通过这个表格,我就消失了。唯一的解决方案是更改表的名称吗?然后不要选择*——只选择您需要的字段。您也可以使用别名表-
选择tb1.name FROM…
投票回答如果“它有效”,您的评论是一个单独的问题。因此,我只需要写出??无法从自动售货机上完成此操作?哈哈:)需要获得此效果,因为命名如此多的PDO::FETCH_需要这种类型的东西[Id]=>Array([User]=>1[Tbl1]=>1[Tbl2]=>1)