繁体   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