ユーザーがWebページを介して対話するデータベースを実装している大学の割り当てがあります。目標は、いくつかの基準を指定して書籍を検索することです。これは、より大きなプロジェクト内の 1 つのモジュールです。
ユーザーが必要な基準と順序を選択できるようにしたいのですが、次のようには機能しないようです。
cursor.execute("SELECT * FROM Books WHERE ? REGEXP ? ORDER BY ? ?", [category, criteria, order, asc_desc])
理由がわからない、なぜなら私が行くとき
cursor.execute("SELECT * FROM Books WHERE title REGEXP ? ORDER BY price ASC", [criteria])
完全な結果が得られます。インジェクションに頼らずにこれを修正する方法はありますか?
データは書籍の ISBN が主キーであるテーブルに編成され、各行には書籍のタイトル、著者、発行者などの多くの列があります。ユーザーはこれらの列のいずれかを選択して検索を実行できる必要があります。 .