【发布时间】:2014-01-12 18:52:50
【问题描述】:
我想根据 url 字符串选择一些 id,但我的代码只显示第一个。 如果我手动编写 id,它会很好用。
我有一个这样的网址 http://www.mydomain.com/myfile.php?theurl=1,2,3,4,5 (ids)
现在在 myfile.php 中我有我的 sql 连接并且:
$ids = $_GET['theurl']; (and i am getting 1,2,3,4,5)
如果我用这个:
$sql = "select * from info WHERE `id` IN (1,2,3,4,5)";
$slqtwo = mysql_query($sql);
while ($tc = mysql_fetch_assoc($slqtwo)) {
echo $tc['a_name'];
echo " - ";
}
我得到了正确的结果。现在,如果我使用下面的代码,它就不起作用了:
$sql = "select * from info WHERE `id` IN ('$ids')";
$slqtwo = mysql_query($sql);
while ($tc = mysql_fetch_assoc($slqtwo)) {
echo $tc['a_name'];
echo " - ";
}
有什么建议吗?
【问题讨论】:
-
什么是
$ids?请注意,由于您已将其括在引号中,因此 MySQL 会将其视为单个项目,因此'1, 2'将返回 ID 为1, 2的项目。 -
您可能想研究 SQL 注入和 PDO。这些将大大改进您的代码。
标签: mysql sql select in-clause find-in-set