gpt4 book ai didi

php - 如何处理三个以上的 PHP GET 变量以从 MySQL 数据库中选择数据

转载 作者:行者123 更新时间:2023-11-29 20:13:18 25 4
gpt4 key购买 nike

我有一个名为 get.php 的 PHP 页面可以访问 MySQL 数据库。我使用一张名为: MyTable 的表

在表中,我的行数多于行数。每个信息都有一个id我用它来获取基于它的其他信息:

$sql = "SELECT * FROM `MyTable` WHERE `id`='" . $_GET["var1"]'";
$result = $conn->query($sql);
.
.
.

所以当我去:

localhost/bb/t2/get.php?var1=1

我通过获取行来获取其他信息,例如信息名称。

但是我想处理多个变量:

localhost/bb/t2/get.php?var1=1&var2=2&var4=4&...

这样我就可以获得每个id的信息而且不止一个。

我想处理任意数量的变量并获取它的数据。

谢谢!

最佳答案

首先,使用数组在 URL 中指定多个 id 会更容易:

http://localhost/bb/t2/get.php?var[]=1&var[]=2&var[]=4&...

这样,您的 PHP 代码中的 $_GET['var'] 将是一个数组,并将包含 URL 中指定的所有值。

接下来,您必须确保所有数组项(id)都是数字。有很多解决方案,例如跳过非数字值:

// make sure parameters are OK
if (is_array($_GET['var'])) {
// eliminate non-numeric values
$ids = array_filter($_GET['var'], function($item) {
return is_numeric($item);
});
}
else {
// invalid arguments; throw exception or do something else
}

最后,您必须在查询中使用 WHERE IN(当然,在执行 SQL 查询之前验证 $ids 数组中是否确实存在某些值):

if (!empty($ids)) {
$sql = "SELECT * FROM `MyTable` WHERE `id` IN (" . implode(",", $ids) . ")";
}
else {
//TODO: no numeric ids specified, do something else...
}

关于php - 如何处理三个以上的 PHP GET 变量以从 MySQL 数据库中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39947113/

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