mysql上的psycopg curs.mogrify相当于什么?

时间:2014-01-15 12:36:49

标签: python mysql psycopg

什么相当于psycopg的cur.mogrify在mysql上?

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

  

mogrify(操作[,参数])   在参数绑定后返回查询字符串。返回的字符串恰好是发送到运行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扩展。

  

提前致谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

根据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))

这适用于all DBs that use the Python DB API