从具有PDO变量的表中获取列值

  • 本文关键字:获取 PDO 变量 php mysql pdo
  • 更新时间 :
  • 英文 :


我最近开始使用PDO,因为我试图提高我的PHP技能,并了解一段时间以前已弃用串联。

当前,我已经建立了一个基本的"用户控制面板"系统,在该系统中,用户寄存器及其详细信息分配给accounts表。在其accounts行上,它们具有business_1business_2business_3,它们在businesses表中填充了行的ID。

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

我希望弄清楚这一点,因为语法感觉与我使用过的不推荐使用的SQL PHP语句完全不同。如果您有更好的学习资源可以更好地学习,请随时在评论中告诉我。

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

有几种方法可以做您要问的事情,但是最简单的是只使用or进行CC_11:

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=?

对于将来,最好将存储在单独表中的"相同信息的倍数"最好,而不是" x_1"," x_2"," x_3"列。理想情况下,您将有一个用于accountsbusinessesaccount_businesses的表。account_businesses表将有一个帐户ID的列,另一个用于业务ID,您将从帐户表中删除业务_#列。

这使得更简单的查询;更好地分割数据以进行分析;让您每个帐户拥有"无限"的其他公司;并且不会用一堆空的次级/第三纪/等列将桌子弄乱。

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

select
    businesses.business_name
from
    businesses, accounts, account_businesses
where
    businesses.id = account_businesses.business
    and account_businesses.account = accounts.id
    and accounts.id=?

最新更新