2016-04-19 12 views
0

ユーザにタイトルを入力してmySQLデータベースを検索する簡単なpythonプログラムが必要です。データベースを構築しましたが、正しく照会する方法がわかりません。ユーザ入力:mySQLデータベース

import MySQLdb 
servername = "localhost"; 
username = "username"; 
password = "password"; 
conn = MySQLdb.connect(user=username,host=servername, passwd=password, db=db) 
cursor = conn.cursor() 
user_input = raw_input("What do you want to watch?:") 
query= ("SELECT * from videos where title LIKE %s") 
cursor.execute(query,user_input) 

IF、私はそれが正常に動作し、 " '%の打ち%' LIKEどこタイトル" と言ってクエリをハードコーディング。私は解決策がかなりシンプルだと思うが、私の人生のために私はそれを理解することができない。どんな助けでも大歓迎です!私はオンラインで見つけることができるあらゆるバリエーションを試しましたが、無駄です。 他にもいくつか試しました:

query= ("SELECT * from videos where title LIKE CONCAT('%',%s,'%')") 

cursor.execute(query,(user_input,)) 

query= ("SELECT * from videos where title LIKE (search)" 
     "VALUES (%s)", user_input) 

...これらはすべて機能しません。

エラーはすべて私の変数user_inputを正しく通過する私の周りを回っているようです。

答えて

1

のようなあなたのクエリを作成することができます:私は@ddsuによって与えられた解決策は、あなたの問題を解決しているはずと考えて

c.execute("SELECT * FROM videos WHERE title LIKE %s", ("%" + user_input + "%",)) 
1

。もしそうでなければ、私は同じコード行を使用するつもりですが、私は問題のコードを投稿しています

import MySQLdb 
    servername = "localhost" 
    username = "username" 
    password = "password" 
    conn = MySQLdb.connect(user=username,host=servername, passwd=password, db=db) 
    cursor = conn.cursor() 
    user_input = raw_input("What do you want to watch?:") 
    query= ("SELECT * from videos where title LIKE %"+user_input+"%") 
    cursor.execute(query) 
関連する問題