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