2017-09-10 8 views
0

python 2.7で簡単な更新文を実行しようとしましたが、まったく動作しません。私は誰かが私の間違いを表示することを願って:Python MySQLの更新文が機能しない

import MySQLdb 
import datetime 

db = MySQLdb.connect(host="localhost", # your host, usually localhost 
        user="root",   # your username 
        passwd="", # your password 
        db="******")  # name of the data base 

cur = db.cursor() 

cur.execute("SELECT * FROM data") 

for row in cur.fetchall(): 
    id_row = str(row[0]) 
    date = str(row[1]) 
    new_date = date[:-2] 
    new_date += "00" 
    cur.execute("UPDATE data SET date={0} WHERE ID={1}".format(new_date, id_row)) 

db.close() 

スクリプトは、データベースからのUNIXタイムスタンプが 最後の2つの数値を切断して、日付を取る00に置き換えると、データベース内の行を更新する必要があります。 数字を置き換えるコードは機能しますが、更新プロセスは機能しません。 エラーメッセージは表示されず、コード0で終了します。

私は間違いをどこにしたか分かりません。誰も助けることができますか?

ありがとうございます!

+0

IDは引用符で囲む必要がありますか? –

+1

接続を閉じる前にdb.commit()を試してみてください。 –

+1

'row [0]'を 'str'の代わりに' int'にキャストしてみてください。そして 'db.commit()'も助けになるかもしれません。 – campovski

答えて

1

私に恥をかく!

エラーは欠落していたdb.commit()です。

ヒントありがとうございます! :)

0
  import pymysql 
     import datetime 

     db = pymysql.connect(host="localhost", # your host, usually localhost 
       user="root",   # your username 
       passwd="", # your password 
       db="******")  # name of the data base 
     cur.execute("SELECT * FROM data") 

     cur = db.cursor() 
     cur.execute("UPDATE data SET date={0} WHERE ID={1}".format(new_date, id_row)) 
     db.commit() 
     ##### pymysql is module 
     ##sudo apt-get install python-pip 
     ####sudo pip install PyMySQL 
関連する問題