0
有人可以幫我出來的MySQL連接語句來插入一個文本文件到MySQL表(字段類型是長BLOB)?蟒蛇 - 需要幫助插入文本文件與打開()到MySQL
例如:
cursor.execute("insert into mytable (file_contents) values ('"+open(filename,"r").read()+"')")
顯然,這不是很實用,可以有人張貼更好的方式來做到這一點?
有人可以幫我出來的MySQL連接語句來插入一個文本文件到MySQL表(字段類型是長BLOB)?蟒蛇 - 需要幫助插入文本文件與打開()到MySQL
例如:
cursor.execute("insert into mytable (file_contents) values ('"+open(filename,"r").read()+"')")
顯然,這不是很實用,可以有人張貼更好的方式來做到這一點?
由於特殊字符(引號!)或惡意SQL命令,將文件內容直接附加到SQL查詢中是很危險的。
試試這個:
with open(filename,"r") as infile:
cursor.execute("insert into mytable (file_contents) values (%s)", (infile.read(),))
沒錯。請注意,來自infile的數據作爲第二個參數傳遞 - 字符串插值由cursor.execute處理,它也確保字符串參數正確轉義。 – jsalonen 2010-10-13 13:31:24