私はクイズアプリケーションを作ろうとしており、データベースから "n"個の質問を取り出す必要があります。私はまた、カテゴリまたは難しさのフィルタで結果をフィルタリングする必要があります。ユーザは、(例えば)カテゴリの選択をした場合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ファイルで1つのクエリを作成するようなことをすることはできますか?
$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");
}
うん、*それがぽっかりSQLインジェクションのセキュリティ上の危険であるとして – zerkms
は '$のsize'には気をつけて渡されたパラメータに応じて*別のクエリを生成します。最初に正しい範囲内の有効な整数であることを確認してください。 – gahooa
($ category == 'all_categories')? $ stmt = "":$ stmt = ""; とても洗練された – phpmeh