チェックボックスからユーザー入力を取得し、MySQL テーブルから対応する行を返す Web サイトがあります。
たとえば、ユーザーがいくつかの色を選択すると、Web サイトはテーブルからその色のオブジェクトを表示します。
問題は、ユーザーが 1 つの色のみを選択すると、MySQL クエリが正しく作成されず、エラーが発生することです。colors
以下の配列に注意してください。
したがって、これは機能します:
import MySQLdb
db = MySQLdb.connect(host="...", user="...", port=..., db="...", passwd="...")
colors = ["red", "blue"]
cursor.execute("SELECT * FROM `objects` WHERE `color` IN %s",(colors,))
そして、これはしません:
import MySQLdb
db = MySQLdb.connect(host="...", user="...", port=..., db="...",passwd="...")
colors = ["red"]
cursor.execute("SELECT * FROM `objects` WHERE `color` IN %s", (colors,))
これを修正する方法はありますか?今のところ、私は一時的に偽の「色」(データベースにオブジェクトがリンクされていないもの) を追加していますが、これは明らかに理想的な解決策ではありません。