我目前正在開發一個應用程序,它將通過我寫的PHP服務與數據庫進行通信。PHP MySQL語句沒有返回任何內容?
我遇到的問題是應根據用戶的搜索字符串查找表中的行或行。
下面的PHP旨在用一個名爲「name」的變量來接收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);
}
我對此非常期待在表中的條目和「薯片」的名字,所以當我送得到請求與說「cr」的數據我希望看到在結果中的條目,但它返回0行。
然後什麼更奇怪的是,當我直接對我的數據庫運行下面的SQL它實際上拉回正確的記錄。
SELECT * FROM products WHERE name LIKE "%cr%"
任何想法??
注意,所有'mysql_ *'功能被棄用(參見[紅色框](http://php.net/mysql_query))。您還需要在'$ _GET ['name']'中轉義'%'和'_'。 – 2013-03-01 14:12:38
脫離主題幫助:解決此問題後,您將遇到更多問題。請參閱:'$ result = mysql_query();'然後您有'$ result = mysql_fetch_array()',但是您使用'$ row [「price」]''。 '$ row'將是未定義的,'$ result'將包含一個數組數組。最好的祝願 :-) – phpisuber01 2013-03-01 14:12:41