2017-07-15 96 views
-1

我最近想從bluetooth.discover_devices()插入mac地址到mysql表中。
但是我總是得到「你的SQL語法有錯誤;在第1行檢查對應於你的MySQL服務器版本的手冊,查看正確的語法給'EE:2D:A0:47:E4'附近的用戶) 「
我的bluetooth.discover_devices()的MAC地址是00:EE:2D:A0:47:E4。
我想知道爲什麼我不能存儲使用簡單的插入從Python到MySQL。
僅供參考,我已經嘗試打印的地址,它顯示我的MAC地址從蟒蛇插入MAC地址到mysql

這裏是我的代碼

import bluetooth 
import MySQLdb 

nearby_devices = bluetooth.discover_devices() 
db = MySQLdb.connect(host,user,passwd,db) 
cursor = db.cursor() 

for addr in nearby_devices: 
    cursor.execute("insert into user (macaddress) values (%s)" % addr) 
    print ("%s" % (addr)) 
db.commit() 
+0

使用正確的方式將參數傳遞給由您的數據庫適配器的'.execute()'提供的查詢。切勿在SQL查詢中使用字符串格式。它會導致SQL注入和錯誤,就像你正在觀察的那樣。 –

+0

這將是:'cursor.execute(「insert into user(macaddress)values(%s)」,[addr])' –

+0

它工作的人感謝。是的,我已經研究了SQL注入,但仍然困惑如何工作。謝謝!! – Chris

回答

1

變化

cursor.execute("insert into user (macaddress) values (%s)" % addr) 

cursor.execute("insert into user (macaddress) values ('%s')" % addr) 

有一個嘗試!