2

Web アプリケーションに検索機能をインストールしようとすると問題が発生します。問題は次のコードにあります。次の2つのクエリを試しましたが、pythonでエラーが表示されます。これを以下にリストします。

def searchBox(user_id, searchparams):

try:
    cursor = connection.cursor()

    if cursor:
        sql = "SELECT * FROM db_email WHERE user_id = %d AND deleted = 0 AND subject LIKE '%%%s%%';"
        cursor.execute(sql % (user_id, searchparams)

私も試しました:

try:
    cursor = connection.cursor()

    if cursor:
        sql = "SELECT * FROM db_email WHERE user_id = %d AND deleted = 0 AND subject LIKE " + "'%" + searchparams + "%';"
        cursor.execute(sql % (user_id))

どちらも私にこのエラーを返します:

TypeError: not enough arguments for format string

これは、私が問題を抱えた唯一の生のクエリであり、LIKE を呼び出す必要がある方法に関連しています。Python をバイパスする代わりにストアド プロシージャを作成することもできますが、何かばかげたことをしていて、問題を見落としているように感じます。どんな助けでもいただければ幸いです


ありがとうございました。問題の一部は LIKE クエリにあると思います。searchparams をパーセント記号で囲む必要があり、以下の回答はそのように機能しません-

subject LIKE '%somestringimlookingfor%' 

上記のコードでは、'test'%'' になるようです。何か案は?

4

1 に答える 1