MySQLデータベースの行を更新するのに問題があります。これが私が実行しようとしているコードです:
import MySQLdb
conn=MySQLdb.connect(host="localhost", user="root", passwd="pass", db="dbname")
cursor=conn.cursor()
cursor.execute("UPDATE compinfo SET Co_num=4 WHERE ID=100")
cursor.execute("SELECT Co_num FROM compinfo WHERE ID=100")
results = cursor.fetchall()
for row in results:
print row[0]
print "Number of rows updated: %d" % cursor.rowcount
cursor.close()
conn.close()
このプログラムを実行したときに得られる出力は次のとおりです。
4
更新された行数:1
動作しているように見えますが、MySQLコマンドラインインターフェイス(CLI)からデータベースをクエリすると、データベースがまったく更新されていないことがわかります。ただし、CLIから入力するUPDATE compinfo SET Co_num=4 WHERE ID=100;
と、データベースは期待どおりに更新されます。
私の問題は何ですか?WindowsボックスでMySQL5.1.30を使用してPython2.5.2を実行しています。