首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插入到mysql python中-不工作

问插入到mysql python中-不工作
EN

Stack Overflow用户
提问于 2017-02-06 22:26:57
回答 2查看 819关注 0票数 1

我在MySQL中创建了下面的表

代码语言:javascript
复制
create table DT (Date varchar(20), Time varchar(20))

我使用下面的python代码来插入到mysql中。我没有收到任何错误,日期和时间也没有写入mysql。

代码语言:javascript
复制
import mysql.connector
from datetime import datetime

conn = mysql.connector.connect(host = 'localhost', database = 'mydatabase', user = 'root', password = '')
cursor = conn.cursor()
i = datetime.now()
xdate = i.strftime('%Y-%m-%d')
xtime = i.strftime('%H-%M-%S')
sqql = 'insert into DT (Date, Time) values (%s,%s);'
cursor.execute(sqql, xdate, xtime)
conn.commit()
conn.close()

我没有得到任何错误,也没有得到插入到mysql的日期和时间。但是,当我直接在mysql中执行插入操作时,它可以正常工作。

代码语言:javascript
复制
insert into DT (Date, Time) values ('2017-02-06', '19-54-36');

不确定如何解决?有人能帮帮忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-06 22:27:54

您没有正确传递查询参数,请将它们放入元组中,替换:

代码语言:javascript
复制
cursor.execute(sqql, xdate, xtime)

通过以下方式:

代码语言:javascript
复制
cursor.execute(sqql, (xdate, xtime))
票数 4
EN

Stack Overflow用户

发布于 2017-02-06 22:32:11

根据this example和the documentation的说法,cursor.execute()方法将字符串查询作为第一个参数,第二个参数是包含该查询的值的元组或字典。所以你应该这样调用这个方法:

代码语言:javascript
复制
cursor.execute(sqql, (xdate, xtime))

如果您仅在此调用中使用xdate和xtime,您甚至可以通过以下方式简化此调用:

代码语言:javascript
复制
cursor.execute(sqql, (i.strftime('%Y-%m-%d'), i.strftime('%H-%M-%S')))

此外,您还可以使用字典来提高代码的可读性:

代码语言:javascript
复制
sqql = 'insert into DT (Date, Time) values (%(xdate)s, %(xtime)s);'
cursor.execute(sqql, {'xdate': `xdate`, 'xtime`: xtime})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42070117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档