如果需要多個條件,只是他們AND
分開:
... WHERE table1.age <= ? AND table1.region = ?
無需再使用WHERE
就像你不需要使用超過一次,如果你正在編寫一個if()
更多。併發症前提條件在PHP中。
PS:這是不直接關係到你的問題,但你應該進入的不把$ _POST或$ _GET變量,直接進入您的SQL查詢的習慣。這是被黑客入侵的好方法!詢問您的導師關於「SQL注入」,或閱讀我的演示文稿SQL Injection Myths and Fallacies。
我知道你剛剛起步的,但如果你是訓練成爲一名電工,你將學習如何避免觸電或如何避免引起火災高優先級。
下面我將如何使用的mysqli寫您的查詢。使用查詢參數的一個優勢是您永遠不必擔心您開始和結束引號的位置。
$query = "SELECT * from table1 where table1.age <= ? AND table1.region = ?";
$stmt = $mysqli->prepare($query) or trigger_error($mysqli->error, E_USER_ERROR);
$stmt->bind_param("is", $_POST["min_age"], $_POST["region"]);
$stmt->execute() or trigger_error($stmt->error, E_USER_ERROR);
我在這裏展示的另一個好習慣是總是報告,如果準備()或執行()返回一個錯誤。
如果你一定要插變量到SQL,首先要確保你的,或者通過使用像mysqli_real_escape_string適當避開功能()保護的變量或者由值強迫爲整數。 不要直接將$ _POST變量放入字符串中。如果使用PHP語法直接在雙引號字符串中嵌入變量,則不必停止並重新啓動引號:
$age = (int) $_POST["min_age"];
$region = $mysqli->real_escape_string($_POST["region"]);
$query = "SELECT * from table1 where table1.age <= {$age}
AND table1.region = '{$region}'";
它不應該是「和where」。你可以發佈你有的當前查詢(有多個wheres或類似的東西)? – Maximus2012
WHERE列=東西ADN someothercolumn =東西 – Mihai
你只需要使用「其中」在一次查詢。其中,x = y和x> 4 – Billy