PHP Mysql where子句使用外键

时间:2014-03-15 10:35:22

标签: php select where

我的php应用程序中有这个select语句:

$result = mysqli_query($con,"SELECT * FROM apps WHERE device.DeviceName = $os ");

我正在尝试选择所有具有变量“$ os”设备名称的“应用”,所有应用都在一个具有设备ID的表中,并且设备表保存设备名称...

2 个答案:

答案 0 :(得分:0)

加入您的设备表,否则您无法在WHERE子句

中使用它
SELECT *
FROM apps A
    INNER JOIN device D
        ON D.id = A.deviceID
WHERE D.DeviceName = '$os'

正如评论所暗示的那样,这很容易注射,所以要小心。

答案 1 :(得分:0)

您正在寻找JOIN。请查看this article以获得更多帮助。

基本上JOIN根据您指定的条件将两个表组合在一起(您可以有多个连接)。最常用的标准是外键。

您要寻找的联盟是:

SELECT * FROM apps 
INNER JOIN device ON apps.deviceID = device.id 
WHERE device.DeviceName = $os

此外,通过将参数直接放在查询中,您可以接受SQL注入漏洞。阅读这篇伟大的stack overflow question