Python MySQL –更新表中的数据
时间:2019-11-20 08:52:39 来源:igfitidea点击:
简介:本教程将引导您完成使用MySQL Connector / Python API更新MySQL表中的数据所需的步骤。
要更新Python中MySQL表中的数据,请按照以下步骤操作:
通过创建一个新的MySQLConnection对象连接到数据库。
从MySQLConnection对象创建一个新的MySQLCursor对象,然后调用MySQLCursor对象的execute()方法。
要接受更改,请在调用execute()方法之后调用MySQLConnection对象的commit()方法。
否则,将不会对数据库进行任何更改。关闭游标和数据库连接。
以下示例更新由书ID指定的书的标题:
from mysql.connector import MySQLConnection, Error from python_mysql_dbconfig import read_db_config def update_book(book_id, title): # read database configuration db_config = read_db_config() # prepare query and data query = """ UPDATE books SET title = %s WHERE id = %s """ data = (title, book_id) try: conn = MySQLConnection(**db_config) # update book title cursor = conn.cursor() cursor.execute(query, data) # accept the changes conn.commit() except Error as error: print(error) finally: cursor.close() conn.close() if __name__ == '__main__': update_book(37, 'The Giant on the Hill *** TEST ***')
在此模块中,我们使用了在从Python教程连接数据库时创建的python_mysql_dbconfig模块中的read_db_config()函数。
我们在UPDATE语句中放置了两个占位符(%),一个占位符,另一个占位符。
我们将UPDATE语句(query)和(title,id)元组都传递给execute()方法。
连接器会将查询解释为以下内容:
UPDATE books SET title = 'The Giant on the Hill *** TEST ***' WHERE id = 37
重要的是要理解,我们应始终在包含来自用户输入的任何SQL语句中使用占位符(%s)。
这有助于我们防止SQL注入。
让我们测试一下我们的新模块,看看它是否有效。
首先,选择ID为37的书:
SELECT * FROM books WHERE id = 37;
+----+------------------------+---------------+ | id | title | isbn | +----+------------------------+---------------+ | 37 | The Giant on the Hill | 1235644620578 | +----+------------------------+---------------+ 1 row in set (0.00 sec)
其次,执行update.py模块。
python update.py
第三步,通过执行SELECT语句以确认更改来选择书籍:
+----+------------------------------------+---------------+ | id | title | isbn | +----+------------------------------------+---------------+ | 37 | The Giant on the Hill *** TEST *** | 1235644620578 | +----+------------------------------------+---------------+ 1 row in set (0.00 sec)
它按预期工作。
在本教程中,您学习了如何使用MySQL Connector / Python API从表中更新数据。