Home > Database > Mysql Tutorial > Why Aren't My MySQL Database Updates with Python Reflecting in the Database?

Why Aren't My MySQL Database Updates with Python Reflecting in the Database?

Susan Sarandon
Release: 2024-12-06 19:38:14
Original
570 people have browsed it

Why Aren't My MySQL Database Updates with Python Reflecting in the Database?

Troubleshooting Database Updates with MySQL and Python

Your issue arises when updating a MySQL database using Python's MySQLdb library. The following code is being executed:

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()
Copy after login

Upon running this code, it appears successful, indicating that the database has been updated. However, subsequent querying from the MySQL command line interface reveals that the update was not applied.

Cause

The issue lies in the lack of a commit operation. MySQLdb enables transactions by default, and updates require an explicit commit to make them permanent. Without a commit, changes are not saved to the database.

Solution

To resolve this, include conn.commit() before closing the connection, as seen below:

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

**conn.commit()**  # Commit changes to database

cursor.close()
conn.close()
Copy after login

By incorporating conn.commit(), the changes made to the database will be successfully persisted.

The above is the detailed content of Why Aren't My MySQL Database Updates with Python Reflecting in the Database?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template