我目前正在开发一个应用程序,它将通过我编写的 PHP 服务与数据库进行通信。
我遇到问题的服务应该根据用户的搜索字符串在表中查找一行或多行。
下面的 PHP 旨在接收带有“名称”变量的 GET 请求,该变量将是 SQL 查询使用的数据。我看不出我的代码有什么问题,但是从搜索返回的行始终为 0。
// checks for the post data
if (isset($_GET["name"])) {
$name = '%' . $_GET['name'] . '%';
// get a list of products from the database
$result = mysql_query("SELECT * FROM products WHERE name LIKE $name");
if (!empty($result)) {
// check for empty result
if (mysql_num_rows($result) > 0) {
$result = mysql_fetch_array($result);
$products = array();
$products["id"] = $row["id"];
$products["name"] = $row["name"];
$products["type"] = $row["type"];
$products["price"] = $row["price"];
$products["photo"] = $row["photo"];
// success
$response["success"] = 1;
// products node
$response["products"] = array();
array_push($response["products"], $products);
// echoing JSON response
echo json_encode($response);
} else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found";
// echo no products JSON
echo json_encode($response);
}
} else {
// no products found
$response["success"] = 0;
$response["message"] = "Search Complete... No products found";
// echo no products JSON
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
}
我在它正在查看的表中有一个条目和一个名为“crisps”的条目,所以当我发送一个带有“cr”数据的 get 请求时,我希望在结果中看到该条目,但是它返回 0 行。
然后更奇怪的是,当我直接对我的数据库运行下面的 SQL 时,它实际上拉回了正确的记录。
SELECT * FROM products WHERE name LIKE "%cr%"
有任何想法吗??