Python Mysql插入查询



我试图使用python代码将值插入MYSQL数据库,但很难修复错误,尽管错误代码听起来很熟悉。

我的查询如下

查询=";插入到Case_history(Patient_id、Patient_name、性别、Dob、地址、电话号码、职业、日期中心(值(%d、%s、%s、%d、%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("附近使用的正确语法

Patient_id是一个符合表定义的整数。此外,该表有一个设置为自动递增的行号列,因此我从查询中排除了行号。

我从这里和这里关注帖子,但无法找到根本原因。我所理解的是,我可以使用None关键字将Null值从Python发送到MYSQL,但它不起作用。如果我按以下方式修改查询,那么它可以工作,但不会将NULL插入表中。

query="插入病例历史(Patient_id、Patient_name、性别、Dob、地址、电话号码、职业、日期(值(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选项的记录。

**插入表名称值(元组值的字符串(**

还将表中列的数据类型更改为varchar。

相关内容

  • 没有找到相关文章

最新更新