2016-04-03 84 views
1

有沒有辦法將這條線從PHP轉換爲Python,如果是這樣,請解釋一下每件事的含義以及它的工作原理。將mysql_query從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() 

如果任何人都可以解釋如何做到這一點,將是一個很大的幫助

回答

0

如果使用parameter passing style,DB API將照顧逃生。你不需要逃避自己和構造SQL:

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

勢必術語指的輸入值綁定到 數據庫執行緩衝的過程。實際上,這意味着 輸入值直接用作操作中的值。 客戶端 不應該被要求「轉義」該值,以便它可以使用- 該值應該等於實際的數據庫值。