"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué no funcionan mis inserciones de Python MySQL?

¿Por qué no funcionan mis inserciones de Python MySQL?

Publicado el 2024-11-18
Navegar:863

Why Are My Python MySQL Inserts Not Working?

Solución de problemas de operaciones de inserción de MySQL en Python

En Python, al utilizar la API de MySQL para interactuar con una base de datos MySQL, la inserción de registros puede encontrar obstáculos. Este artículo aborda uno de esos problemas en los que no se pueden insertar registros a pesar de una implementación aparentemente correcta.

El código proporcionado establece una conexión con la base de datos e intenta insertar un registro en la tabla 'documentos'. Sin embargo, la operación de inserción falla. Para resolver este problema, es fundamental comprender la importancia de las transacciones de la base de datos.

En MySQL, los cambios en la base de datos se administran a través de transacciones. Una transacción comienza cuando se establece una conexión y finaliza cuando se cierra la conexión o cuando se llama explícitamente a una operación de confirmación o reversión. Cualquier cambio realizado en la base de datos durante una transacción no es permanente hasta que se confirma la transacción.

En el código proporcionado, la operación de inserción se ejecuta correctamente, pero los cambios no se confirman en la base de datos antes de que se cierre la conexión. (usando db.close()). Sin confirmar la transacción, la operación de inserción se descarta una vez que se cierra la conexión.

Para resolver este problema y garantizar que la operación de inserción se realice correctamente, debe incluir una llamada a db.commit() antes de cerrar la conexión a la base de datos. . Esta acción confirma la transacción, haciendo que el registro insertado sea persistente en la base de datos.

Aquí está el código modificado que incluye la operación de confirmación:

db = MySQLdb.connect("localhost", "root", "padmaramulu", "pdfsearch")
cursor = db.cursor()
# cursor.execute("""CREATE TABLE IF NOT EXISTS documents (docid INT NOT NULL ,PRIMARY KEY(docid),docname CHAR(30)) engine=innodb""")
temp = "hello"; number = 2;
cursor.execute('insert into documents(docid,docname) values("%d","%s")' % (number, temp))
db.commit()
db.close()

Al incluir la llamada db.commit(), los cambios realizados durante la transacción, incluida la operación de inserción, se confirman en la base de datos y se vuelven permanentes.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3