我正在嘗試做一個測驗應用程序,我需要從數據庫中檢索「n」個問題。我還需要使用類別或難度過濾器來過濾結果。在PHP中選擇與條款WHERE
我沒有任何問題,如果用戶做出選擇的類別(例如):
$size = $_POST['param0'];
$category = $_POST['param1'];
$stmt = $db->prepare("SELECT *
FROM questions_fr
WHERE categories = :categories
LIMIT 0, $size");
$stmt->bindparam(":category", $category);
$stmt->execute();
但是如果他想要的所有類別?
我可以這樣做,只在我的PHP文件中只有一個查詢?
$stmt = $db->prepare("SELECT *
FROM questions_fr
WHERE categories = * (here, select all the categories)
LIMIT 0, $size");
或者我應該這樣做嗎?
(pseudocode)
if ($category != "all_categories")
{
$stmt = $db->prepare("SELECT *
FROM questions_fr
WHERE categories = :categories
LIMIT 0, $size");
}
else if ($category == "all_categories")
{
$stmt = $db->prepare("SELECT *
FROM questions_fr
LIMIT 0, $size");
}
沒錯,*根據傳遞 – zerkms 2012-03-26 22:50:22
當心'$ size',因爲它是一個敞開的SQL注入安全隱患的參數生成*不同的查詢。建議您確保它是首先在正確範圍內的有效整數。 – gahooa 2012-03-26 22:51:46
($ category =='all_categories')? $ stmt =「」:$ stmt =「」; 非常清潔 – phpmeh 2012-03-26 22:52:42