5

什么相当于cur.mogrifymysql 上的 psycopg?

来自:http: //initd.org/psycopg/docs/cursor.html

mogrify(operation[, parameters]) 在参数绑定后返回一个查询字符串。返回的字符串正是将发送到运行 execute() 方法或类似方法的数据库的字符串。

>cur.mogrify("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar'))
>"INSERT INTO test (num, data) VALUES (42, E'bar' )"

DB API 扩展 mogrify() 方法是 DB API 2.0 的 Psycopg 扩展。

提前致谢。

4

2 回答 2

4

根据示例,您可以在执行语句后看到“mogrify”的结果。

import MySQLdb

conn = MySQLdb.connect()
cursor = conn.cursor()

cursor.execute('SELECT %s, %s', ('bar', 1))
print cursor._executed

哪个会打印

SELECT 'bar', 1

此外,您不需要在执行前使用 mogrify

query = cursor.mogrify('SELECT %s, %s', ('bar', 1))
cursor.execute(query)

您可以简单地执行以下操作

cursor.execute('SELECT %s, %s', ('bar', 1))

这将适用于所有使用 Python DB API 的数据库

于 2017-10-19T01:36:11.720 回答
3

MySQL 没有内置任何东西来返回这样的查询字符串。如果要使用替换的变量执行查询,请使用PREPARE并执行:

PREPARE stmt AS "INSERT INTO test(num, data) VALUES (?, ?)";
EXECUTE stmt USING 42, 'bar';
于 2014-01-15T12:42:21.497 回答