2016-04-19 4 views
0

Я хочу, чтобы простая программа python запрашивала у пользователя название и искала базу данных mySQL. У меня построена база данных, но я не могу понять, как правильно ее запросить.Пользовательский ввод в базу данных 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

Вы можете создать запрос типа:

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

Я думаю, что решение дается @ddsu должно решить вашу проблему. в случае, если нет, в этом я собираюсь использовать одну и ту же строку кода, но я отправляю полный код для проблемы с ур

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) 
Смежные вопросы