[英]Unassigned php variable in WHERE clause of mysql query
我在WHERE子句中使用php變量進行查詢。 但是,如果未分配變量,則不會返回結果。
$customer = isset($_REQUEST['customer'])?$_REQUEST['customer']:'';
$territory = isset($_REQUEST['territory'])?$_REQUEST['territory']:'';
$status = isset($_REQUEST['status'])?$_REQUEST['status']:'';
$getOrder = "SELECT * FROM order WHERE Customer = '$customer' AND Territory = '$territory' AND Status = '$status'";
$getOrderQuery = mysql_query($getOrder);
while($iRow = mysql_fetch_array($getOrderQuery))
{ .... }
如果分配了三個變量,它將返回結果。 我需要怎么做才能使查詢返回結果,即使變量為空?
我無法評論您的信息,但我可以留下答案。
嘗試echo $getOrder;
確保變量具有期望的值,然后執行查詢並使用MySQL客戶端或phpMyAdmin在數據庫上直接執行查詢。
另外,您應該對變量進行轉義,因為這對SQL注入攻擊很有用。 我喜歡使用PDO API 。
您也可以根據以下評論嘗試
SELECT * FROM order
WHERE IFNULL(Customer, '') IN('$customer', '') AND IFNULL(Territory,'') IN('$territory','') AND IFNULL(Status, '') IN('$status','')";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.