无论如何,是否有将这行代码从PHP转换成python的信息,如果有的话,请解释每件事的含义和作用方式。

mysql_query( "INSERT INTO chatitems VALUES ( null, null, '".
    mysql_real_escape_string( $_REQUEST['user'] ).
    "', '".
    mysql_real_escape_string( $_REQUEST['message'] ).
    "')" );


我遇到很多麻烦并尝试做

import MySQLdb

conn = MySQLdb.connect(host='24.44.205.122', user='root', password='1234',
                          database='chat')
x = conn.cursor()

try:
    x.execute("INSERT INTO chatitems VALUES (%s, %s)""", (null, null), conn.escape_string(self.request.get("user")). "', '". conn.escape_string(self.request.get("message")). "')" );
except:
    conn.rollback()

conn.close()


如果有人可以解释如何做到这一点,那将是一个很大的帮助

最佳答案

如果使用parameter passing style,则DB API将负责转义。您无需逃脱自己并构造sql:

x.execute("INSERT INTO chatitems VALUES (null, null,  %s, %s)", [
    self.request.get("user"),
    self.request.get("message")
])



  术语“绑定”是指将输入值绑定到
  数据库执行缓冲区。实际上,这意味着
  输入值直接用作操作中的值。客户端
  不应要求“转义”该值以便可以使用它-
  该值应等于数据库的实际值。

07-26 01:48