2017-04-01 10 views
3

PythonをMySQLデータベースに接続するためのpymysqlモジュールが見つかりました。私はデータベースを 'loot'という名前のテーブルで設定し、lootには 'wins'というカラムが含まれています。私のコードには、SQL行の直前に値が与えられた 'won'という名前の変数が含まれています。 id = 1の「wins」列に変数「won」を入力します。 id = 1の行はすでにデータベースに存在します。は、なぜ私はこのエラーを取得していますし、私が間違って何をやっている:Python 3 MySQLデータベーステーブルを更新

以下のコードは、pymysql.err.InternalError: (1054, "Unknown column 'won' in 'field list'")

私の質問にエラーがスローされますか?

コード:

import pymysql 

# Open database connection 
db = pymysql.connect(host='*******',user='******',password='*****',db='******') 

# prepare a cursor object using cursor() method 
cursor = db.cursor() 

won=1 

# Prepare SQL query to UPDATE required records 
sql = "UPDATE loot SET wins = won WHERE id = 1" 

# Execute the SQL command 
cursor.execute(sql) 

# Commit your changes in the database 
db.commit() 

# disconnect from server 
db.close() 

答えて

2

MySQLはそうあなたが.execute()に引数として渡す必要がありますwon変数を読み取ることができません。

won = 1 
sql = "UPDATE loot SET win = %s WHERE id = %s" 
cursor.execute(sql,(won,1)) 
db.commit() 

あなたが持っていることに注意してください2番目の引数として何らかの種類のコンテナを.execute()に持っています。この場合、タプルです。

+1

私はまだ学習しています:-)これは実際にタプルの内部にあるタプルですか? – Brandon

+1

これはメソッド呼び出し内のタプルです。 – bernie

+1

私たちはすべて、習っています:-) – bernie

関連する問題