使用PDO从带有变量的表中获取列值

时间:2017-04-27 21:02:17

标签: php mysql pdo

我最近开始使用PDO,因为我正在努力提高自己的PHP技能,并了解串联已经被弃用了。

目前,我已经建立了一个基本的用户控制面板"用户注册的系统及其详细信息已分配给accounts表。在accounts行,他们有business_1business_2business_3,其中填充了businesses表格中的行ID。

我想查找此用户名的business_x行中每个accounts列的ID,在businesses表中找到它们,然后打印每个列中的列值相关的行......但我不知道怎么做!

我想要解决这个问题,因为语法与我已经使用的弃用的SQL PHP语句完全不同。如果您有更好的学习资源,请随时在评论中告诉我。

1 个答案:

答案 0 :(得分:0)

这可以在一个查询中处理,因此您可能不需要在使用PDO的上下文中提出此问题。但是,我会将我的答案呈现为准备好的陈述。

有几种方法可以做你要求的事情,但最简单的方法是只用[{1}}做join

or

对于未来而言,拥有相同信息的倍数通常会更好。存储在一个单独的表中,而不是" x_1"," x_2"," x_3"列。理想情况下,您会有select businesses.business_name from businesses join accounts on ( businesses.id=accounts.business_1 or businesses.id=accounts.business_2 or businesses.id=accounts.business_3 ) where accounts.id=? accountsbusinesses的表格。 account_businesses表将包含帐户ID列和业务ID的另一列,您将从帐户表中删除business_#列。

这使得更简单的查询;更好的数据分割用于分析;允许你有一个"无限的"每个帐户的其他公司数量;并且不会使用一堆空的二级/三级/等列来混乱你的表。

使用该方法的查询将非常简单:

account_businesses