2016-08-08 5 views
0

Python 2.7の変数からMySQL文に文字列値を挿入しようとしました。 私はそれが動作するように見えることができない、誰かが正しい方向に私を指すことができますか?Python 2.7を使用してMySQLに変数を渡す

import MySQLdb 

country_name = raw_input("Which country would you like?\n") 

dbh = MySQLdb.connect(host="localhost", 
         user="boole", 
         passwd="****", 
         db="mySQL_Experiment_1") 
sth = dbh.cursor() 
sth.execute("""SELECT name, population FROM world WHERE name=(%s)""", (country_name)) 
for row in sth: 
    print row[0], row[1] 

それは出力:

/usr/bin/python2.7 "/home/boole/Documents/Python Scripts/mySQL_Experiment_1/main.py" 
Which country would you like? 
Canada 
Traceback (most recent call last): 
    File "/home/boole/Documents/Python Scripts/mySQL_Experiment_1/main.py", line 10, in <module> 
    sth.execute("""SELECT name, population FROM world WHERE name=(%s)""", (country_name)) 
    File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 187, in execute 
    query = query % tuple([db.literal(item) for item in args]) 
TypeError: not all arguments converted during string formatting 

Process finished with exit code 1 

おかげで、 ブール

+0

を試してみてください? –

+0

申し訳ありませんが、私は何かを忘れていたことを知っていた! – Boole

+0

このカーソルを試してみてください( "SELECT name、FROM world name name =%s"、[country_name]) – Prateek

答えて

1

は、あなたがこれを実行したときに何が起こるこの

cursor.execute("SELECT name, population FROM world where name = %s", [country_name]) 
関連する問題