簡體   English   中英

mysql查詢的WHERE子句中未分配的php變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM