在MySQL中,什么是与psycopg的curs.mogrify等效的功能?

5

在MySQL中,cur.mogrify的等效方法是什么?

参考链接: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() 方法是 Psycopg 对 DB API 2.0 的扩展。

提前致谢。

2个回答

4
根据this示例,您可以在执行语句后看到“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的所有数据库


3

MySQL没有内置任何返回这样查询字符串的功能。如果您想要执行带有变量替换的查询,可以使用PREPAREEXECUTE

PREPARE stmt AS "INSERT INTO test(num, data) VALUES (?, ?)";
EXECUTE stmt USING 42, 'bar';

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接