【发布时间】:2016-10-10 06:06:04
【问题描述】:
考虑表单中的特定 SQL 查询
cursor.execute(string, array)
其中 string 是包含 '%s' 的字符串,array 是满足 len(array) == string.count("%s") 的数组,不一定只包含字符串。
例如:
cursor.execute("INSERT INTO tablename(col_one, col_two, col_three) VALUES (%s,%s,%s)",("text", 123, datetime.time(12,0)))
当我运行此程序时,我收到一条关于“您的 SQL 语法有错误...”的无用错误消息,然后是查询的部分文本。但是,为了调试它,我想知道查询的全文。
当查询cursor.execute(string, array) 运行时,光标执行的查询的实际文本是什么?
【问题讨论】:
-
cursor.execute()属于哪个框架? -
框架是MySQL
-
这是使用Python API吗?
-
没错,就是python API
-
我对 Python 一无所知,但这不是参数化查询的正常工作方式。参数值单独发送到 MySQL,它们不会注入到 SQL 字符串中。因此,参数值永远不会导致语法错误(这就是重点)。