2011-07-08 8 views
-1

私はほとんどの日のうちに行ってきた場所を解決しようとしてきましたが、まだそれを動かすことはできません、あまりにも長くそれを見つめて、私は非常に早い私のPython &の学習。PythonのMySQL構文エラー

私が構築したクエリは次のとおりです。

query = "UPDATE `db`.`%s" % table + "` SET %s" % table + "`.`%s" % field + "` = `%s" % daychangeperc + "` WHERE (`db`.`%s" % table + "`.`id` = %s" % rowid +") LIMIT 1;" 

私は取得していますエラーは次のとおりです。

_mysql_exceptions.ProgrammingError:(1064、「あなたはあなたのSQL構文でエラーが発生している。チェック近くに使用する権利構文についてはMySQLサーバのバージョンに対応するマニュアル「. DayChange = '-0.00736251627767' WHERE ( outofthe_finance . test1の. id` = 1)」1" 行目)ワットを指摘することができ

誰でもここで私は間違っている?私はそれがおそらく多くの人にとって明らかだと確信しています。

ありがとうございます。

+3

変数 'query'の値を出力すると、これは役に立ちます – triclosan

答えて

2

かなり厄介だ、おそらく代わりに、このようにそれをやってみてください。

query = """UPDATE db.%s SET %s.%s = %s WHERE db.%s.id = %s LIMIT 1""" % (table,table,field,daychangeperc,table,rowid) 
+0

両方の回答がうまくいっていて、勉強するのに便利なトリックです。 – Mike

1

まず、あなたのフォーマット文字列の引数のすべてが終わりに来るように、ここではあなたのクエリの再書かれている:

query = "UPDATE `db`.`%s` SET %s`.`%s` = `%s` WHERE (`db`.`%s`.`id` = %s) LIMIT 1;" \ 
%(table,table,field,daychangeperc,table,rowid) 

このように見ると、SETキーワードの後にアンバランスなバックティックがあることがわかります。私はこれが問題だと思うし、あなたの文字列をどう書いたのか分かりません。