MySQL连接器/Python发布说明
语法:
游标。execute(operation, params=None, multi=False) iterator = cursor。execute(operation, params=None, multi=True)
这个方法执行给定的数据库操作
(查询或命令)。在元组或字典中找到的参数参数个数
绑定到操作中的变量。使用以下命令指定变量% s
或%(
参数样式(即使用名字
)格式
或pyformat
风格)。execute ()
返回一个迭代器多
是真正的
.
请注意
在Python中,包含单个值的元组必须包含逗号。例如,(' abc ')被计算为标量while(' abc ',)被计算为元组。
此示例插入关于新员工的信息,然后为该员工选择数据。语句是单独执行的execute ()
操作:
insert_stmt = ("INSERT INTO employees (emp_no, first_name, last_name, hire_date) ""VALUES (%s, %s, %s, %s)")data = (2, 'Jane', 'Doe', datetime。日期(2012,3,23))游标。执行(insert_stmt, data) SELECT t_stmt = "SELECT * FROM employees WHERE emp_no = %(emp_no)s"游标。执行(select_stmt, {'emp_no': 2})
数据值根据需要从Python对象转换为MySQL可以理解的东西。在上面的示例中,datetime.date ()
实例转换为“2012-03-23”
.
如果多
设为真正的
,execute ()
中指定的多条语句操作
字符串。它返回一个迭代器,用于处理每条语句的结果。然而,在这种情况下,使用参数并不能很好地工作,通常单独执行每个语句是一个好主意。
下面的示例在单个对象中选择和插入数据execute ()
操作并显示每条语句的结果:
操作= 'SELECT 1;INSERT INTO t1 VALUES ();SELECT 2'查询游标中的结果。execute(operation, multi=True): if result。with_rows:打印("语句'{}'生成的行:")。格式(结果。statement)) print(result.fetchall()) else: print("Number of rows affected by statement '{}': {}".format( result.statement, result.rowcount))
如果连接配置为获取警告,则操作生成的警告可以通过MySQLCursor.fetchwarnings ()方法。