繁体   English   中英

如何使用 Python 将变量传递给 MYSQL

[英]How to pass variables to MYSQL using Python

我正在使用 MYSQL (ver. 5.5.31-0+wheezy1) 和 python (ver. 2.7.3) 和以下语句:

q ="""INSERT INTO scale_equipment truck_id, product_id, driver_id, field_id, pit_id, harvest_equipment_id, weight, status VALUES (%s, %s, %s, %s, %s, %s, %s, %s)""",(truck_id, product_id, driver_id, field_id, pit_id, harvest_equipment_id, 0, status)

如果我使用:

q ="""INSERT INTO scale_equipment truck_id, product_id, driver_id, field_id, pit_id, harvest_equipment_id, weight, status VALUES ('002', 'CS', 'BG', 'HD1', 'T1', 'C1', 0, 'U')"""

它工作正常,我在 SQL 语句中传递变量做错了什么

我在使用变量执行查询语句之前打印出 q,它是这样的:

'INSERT INTO scale_equipment truck_id, product_id, driver_id, field_id, pit_id, harvest_equipment_id, weight, status VALUES (%s, %s, %s, %s, %s, %s, %s, %s)', ('002', 'CS', 'BG', 'HD1', 'T1', 'C1', 0, 'U')

任何帮助将不胜感激。

查询参数 应该 必须的第二个参数被传递execute()

params = ('002', 'CS', 'BG', 'HD1', 'T1', 'C1', 0, 'U')
cursor.execute("""INSERT INTO 
                      scale_equipment 
                      (truck_id, product_id, driver_id, field_id, pit_id, harvest_equipment_id, weight, status) 
                  VALUES 
                       (%s, %s, %s, %s, %s, %s, %s, %s)""", params)

在这种情况下,您不必担心 sql 注入,mysqldb 驱动程序会为您进行转义。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM