【发布时间】:2016-09-18 12:18:06
【问题描述】:
我有一个关于 SQL 查询的问题。
这里是:
$allowed = array("Amsterdam", "Arnhem", "Assen", "Groningen", "Leeuwarden", "Rotterdam", "Sittard", "Tilburg", "Utrecht");
$filter = $db->prepare("SELECT * FROM users WHERE '$allowed' = '1'");
$filter->execute;
foreach($filter->fetchAll(PDO::FETCH_OBJ) as $filtered):
$amsterdam = $filtered->amsterdam;
$arnhem = $filtered->arnhem;
$assen = $filtered->assen;
$groningen = $filtered->groningen;
$leeuwarden = $filtered->leeuwarden;
$rotterdam = $filtered->rotterdam;
$sittard = $filtered->sittard;
$utrecht = $filtered->utrecht;
endforeach;
输出(回显时)为空白。
如何让查询从数组中查找列名?
感谢所有帮助。
【问题讨论】:
-
需要添加
OR部分; -
您是否启用了 `php.ini' 文件中的错误?在上代码之前,您是否在 SQL 服务器中测试过查询?
-
还有一点
execute是一个方法而不是属性,所以它应该是$filter->execute();; -
是的,您需要
OR零件来实现您的目标,但另一个问题是:您的目的是什么?看起来过度考虑数据库结构可能是合理的。 -
考虑改变你的数据库设计,每个城市都有一个列名是非常低效的,别介意像上面这样的问题。