iT邦幫忙

0

在SQL語法內插入python變數方法

  • 分享至 

  • xImage

大家好 小弟我python新手 有問題想請教大家
我想寫一個class中的function可以輸入table名稱和插入的值
就可以直接寫入sql的databse中的table裡
但是在變數那塊不管是用format或是execute裡丟入變數都成功不了
不是出現沒有此column就是出現沒有這個table
已經確定column和table都是確實存在的,想請問有什麼方式解決
https://ithelp.ithome.com.tw/upload/images/20220604/20149589f3wgng0Kuu.png

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
小魚
iT邦大師 1 級 ‧ 2022-06-05 07:23:40
  1. 貼程式碼建議需要有文字版本, 上下用```包起來 (要貼錯誤訊息可以, 不過也要貼文字的比較容易看)
  2. 你這寫法怪怪的, 到底是要直接填字串還是要用參數的方式?
  3. 如果直接填字串的話, 可能會有SQL Injection的問題.
0
純真的人
iT邦大師 1 級 ‧ 2022-06-05 10:25:13

那個我算了一下~看起來是insert插入欄位有異常吧~
你要不要先把SQL印出來~再貼去Mysql執行看看錯誤在哪裡~

0
海綿寶寶
iT邦大神 1 級 ‧ 2022-06-06 08:39:13

換這種方式試看看

connection = mysql.connector.connect(host='localhost',
                                         database='python_db',
                                         user='root')

cursor = connection.cursor(prepared=True)
# Parameterized query
sql_insert_query = """ INSERT INTO Employee
                   (id, Name, Joining_date, salary) VALUES (%s,%s,%s,%s)"""
# tuple to insert at placeholder
tuple1 = (1, "Json", "2019-03-23", 9000)
tuple2 = (2, "Emma", "2019-05-19", 9500)

cursor.execute(sql_insert_query, tuple1)
cursor.execute(sql_insert_query, tuple2)
connection.commit()

參考資料來源

我要發表回答

立即登入回答