我正在尝试做一个测验应用程序,我需要从数据库中检索“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