1

事前に助けてくれてありがとう。Stackoverflow と Google でこの問題の解決策をいくつか見てきましたが、実装してもうまくいかないようです。変数内に含まれる python 文字列を sqlite3 WHERE LIKE クエリに渡そうとしているだけです。エラーは発生せず、画面出力はありません。私が試したコードは次のとおりです。

1 を試してください: import cgi import sqlite3

#Get string/Clean string:
form = cgi.FieldStorage() 
term = form.getfirst('term', 'empty')
term = cgi.escape(term)

#Open DB Connection:
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()

#Search and Print Results
print "\nResults from a LIKE query on %s:\n" % term
sql='SELECT * FROM myTable WHERE column LIKE %s'
args=['%'+term+'%']
cursor.execute(sql,args)
print cursor.fetchall()

Try2: import cgi import sqlite3

#Get string/Clean string:
form = cgi.FieldStorage() 
term = form.getfirst('term', 'empty')
term = cgi.escape(term)

#Open DB Connection:
conn = sqlite3.connect("mydatabase.db")
cursor = conn.cursor()

#Search and Print Results
print "\nResults from a LIKE query on %s:\n" % term
term = '%' + term + '%'
cursor.execute("SELECT * FROM table WHERE column LIKE ?", (term,) )
print cursor.fetchall()

LIKE '%http%' を入力するとコードは機能しますが、変数では常に失敗します。cgiは何か関係ありますか?用語を画面に単純に印刷すると、正常に印刷されます。

4

0 に答える 0