我正在研究一个解决方案,我正在使用 PHP Web 服务从 MYSQL 数据库中获取数据。目前它很好,因为我正在为查询传递单条数据。
现在我希望在搜索查询中使用多个 id,例如,我想拉回基于多个 id 的产品列表。我已经把我当前的 PHP 服务放在下面,我试图有效地修改它来做我需要的,但就是无法到达那里。
<?php
// array for JSON response
$response = array();
// include db connect class
require_once __DIR__ . '/dbConnect.php';
// connecting to db
$db = new DB_CONNECT();
// check for post data
if (isset($_GET["id"])) {
$id = $_GET['id'];
// get all products from products table
$result = mysql_query("SELECT * FROM products WHERE id = '$id'") or die(mysql_error());
// check for empty result
if (mysql_num_rows($result) > 0) {
// looping through all results
// venues node
$response["products"] = array();
while ($row = mysql_fetch_array($result)) {
// temp user array
$product= array();
$product["id"] = $row["id"];
$product["name"] = $row["name"];
$product["type"] = $row["type"];
// push single product into final response array
array_push($response["products"], $product);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
} else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found";
// echo no users JSON
echo json_encode($response);
}
}
?>
此代码适用于我将单个 ID 传递到 PHP 并返回单个产品的情况,但是我希望能够将多个 id 传递给数组中的 PHP,然后在查询中使用这些 id。我已经尝试了下面的解决方案,但似乎无法让它工作,而且我知道这个 PHP 并不是最好的,尤其是在防止 SQL 注入方面,因此欢迎任何其他关于此的建议。
WHERE id IN (' . implode(',', $ids) . ')';
提前致谢