gpt4 book ai didi

mysql - 从表中选择多个 ID

转载 作者:IT老高 更新时间:2023-10-29 00:18:48 27 4
gpt4 key购买 nike

我想根据 url 字符串选择一些 id,但我的代码只显示第一个。如果我手动编写 id,它会很好用。

我有一个这样的网址 http://www.mydomain.com/myfile.php?theurl=1,2,3,4,5 (ID)

现在在 myfile.php 中我有我的 sql 连接并且:

$ids = $_GET['theurl']; (我得到 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 " - ";
}

有什么建议吗?

最佳答案

当你插值时

"select * from info WHERE `id` IN ('$ids')"

使用您的 ID,您将获得:

"select * from info WHERE `id` IN ('1,2,3,4,5')"

...它将您的 ID 集视为单个字符串而不是一组整数。

去掉 IN 子句中的单引号,像这样:

"select * from info WHERE `id` IN ($ids)"

此外,不要忘记您需要检查SQL 注入(inject)攻击。您的代码目前非常危险,存在严重的数据丢失或访问风险。考虑一下如果有人使用以下 URL 调用您的网页并且您的代码允许他们在单个查询中执行多个语句可能会发生什么:

http://www.example.com/myfile.php?theurl=1);delete from info;-- 

关于mysql - 从表中选择多个 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762424/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com