簡體   English   中英

使用PHP MYSQL准備語句和IFNULL()返回所有記錄(如果value =“”)

[英]With PHP MYSQL Prepared Statements and IFNULL() to return all records if value = “”

我正在嘗試使用准備好的語句構建MySQL查詢,如果已將其設置為NULL,則該查詢將忽略條件。 例如,在下面,如果$a = ""$b = "10" ,我希望查詢返回所有記錄,其中b列包含值10並忽略a條件,因為當前查詢將返回所有“ a欄”值為“”和“ b欄”值為“ 10”的記錄。

    if ($stmt = $mysqli->prepare("SELECT x, y FROM users WHERE a = IFNULL(?, %%) AND b = IFNULL(?, %%) AND ...")) { 
    $stmt->bind_param('ss...', $a, $b, ...); // Bind variables to parameter.
    $stmt->execute(); // Execute the prepared query.
    $stmt->store_result();
    }

我應該以什么代替'%%'來返回所有內容,就像未設置標准一樣?

編輯:在這里找到一個不使用准備語句的答案,而是為了安全而停止SQL注入的允許字符串數組。

多個下拉列表動態查詢AJAX PHP MySQL

你的意思是

WHERE ((a IS NULL) AND (b = 10))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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