簡體   English   中英

Python-Mysql插入查詢

[英]Python-Mysql insert query

我正在嘗試使用 python 代碼將值插入 MYSQL 數據庫,但努力修復錯誤,盡管錯誤代碼聽起來很熟悉。

我的查詢如下

query="插入 Case_history (Patient_id, Patient_name, Gender, Dob, Address, Phone_no, Occupation, Date_entered) values (%d, %s, %s, %s, %s, %s, %s, %s)"

cur.execute(query, (3, 'myname', 'Male', '2000-12-11', None, '123', '', '2020-11-12 19:49:21'))

編程錯誤: 1064 (42000):您的 SQL 語法有錯誤; 檢查與您的 MySQL 服務器版本對應的手冊,了解在第 1 行的 '%d, %s, %s, %s, %s, %s, %s, %s)' 附近使用的正確語法

根據表定義,Patient_id 是 integer。 該表還有一個設置為自動增量的行號列,因此我從查詢中排除了行號。

我從這里這里關注了帖子,但找不到根本原因。 我的理解是,我可以使用None關鍵字將 Null 值從 Python 發送到 MYSQL,但它不起作用。 如果我按如下方式修改查詢,那么它可以工作,但這不會將NULL插入表中。

query= "insert into Case_history (Patient_id, Patient_name, Gender, Dob, Address, Phone_no, Occupation, Date_entered) values (3, 'myname', 'Male', '2000-12-11', '', '123', '', '2020-11-12 19:49:21'))

當前執行(查詢)

我正在使用Python 3.7 任何幫助將不勝感激!

您應該使用%s作為 Python 腳本/MySQL 表中所有數據類型的占位符,而不僅僅是字符串文字:

query = """INSERT INTO Case_history (Patient_id, Patient_name, Gender, Dob, Address,
                                     Phone_no, Occupation, Date_entered)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)"""
vals = (3, 'myname', 'Male', '2000-12-11', None, '123', '', '2020-11-12 19:49:21')
cur.execute(query, vals)

我設法在沒有 %S 選項的情況下插入記錄。

**插入 table_name 值(元組值的字符串)**

還將表中列的數據類型更改為 varchar。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM