Mysqlデータベースを更新する必要があるpythonスクリプトがあります。
dbb = MySQLdb.connect(Host="localhost",
user="user",
passwd="pass",
db="database")
try:
curb = dbb.cursor()
curb.execute ("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
print "Row(s) were updated :" + str(curb.rowcount)
curb.close()
except MySQLdb.Error, e:
print "query failed<br/>"
print e
スクリプトは、Row(s) were updated :
をRadioID
が11の正しい行数で印刷します。RadioID
をテーブルにない別の番号に変更すると、Row(s) were updated :0
。ただし、データベースは実際には更新されません。 CurrentState
フィールドはそのままです。 SQLステートメントをコピーしてPHPMyAdminに貼り付けると、正常に機能します。
使用する
_dbb.commit()
_
後
curb.execute ("UPDATE RadioGroups SET CurrentState=1 WHERE RadioID=11")
mysqlサーバーに「ロード」したすべての変更をコミットする
@Lazykiddyが指摘したように、mysqlに変更をロードした後、変更をコミットする必要があります。
MySQL接続の初期化直後に、このアプローチを使用して自動コミット設定を有効にすることもできます。
dbb.autocommit(True)
次に、コード実行中に行った変更を自動的にコミットします。
2つの答えは正しいです。ただし、これも実行できます。
dbb = MySQLdb.connect(Host="localhost",
user="user",
passwd="pass",
db="database",
autocommit=True)
add autocommit = True