在python中使用sqlite插入到
这个上面的有效在python中使用sqlite插入到,python,sqlite,Python,Sqlite,这个上面的有效 c.execute("INSERT INTO REDDIT_USER (USERNAME, CREATED_DATE) VALUES ('PHILZEEY', '08-09-17')") 这个底部的没有 有什么遗漏吗?您的第二个在插入的值周围没有引号。试试这个: c.execute('INSERT INTO {tn} (USERNAME, CREATED_DATE) VALUES ({nm}, {dt})'.format(tn='REDDIT_USER', nm='John',
c.execute("INSERT INTO REDDIT_USER (USERNAME, CREATED_DATE) VALUES ('PHILZEEY', '08-09-17')")
这个底部的没有
有什么遗漏吗?您的第二个在插入的值周围没有引号。试试这个:
c.execute('INSERT INTO {tn} (USERNAME, CREATED_DATE) VALUES ({nm}, {dt})'.format(tn='REDDIT_USER', nm='John', dt='09-09-17'))
你的第二个在插入的值周围没有引号。试试这个:
c.execute('INSERT INTO {tn} (USERNAME, CREATED_DATE) VALUES ({nm}, {dt})'.format(tn='REDDIT_USER', nm='John', dt='09-09-17'))
您应该将准备好的语句与位置参数一起使用:
c.execute("INSERT INTO {tn} (USERNAME, CREATED_DATE) VALUES ('{nm}', '{dt}')".format(tn='REDDIT_USER', nm='John', dt='09-09-17'))
关于将表名作为参数,这是不可能的,即使是从一个准备好的语句。通常,大多数查询不会在不同的表上运行。并且允许像这样更改表名可能会带来安全风险。如果需要查询两个不同的表,那么为这些表创建两个准备好的语句
顺便说一句,你说最上面的那个有效:
c.execute("INSERT INTO REDDIT_USER (USERNAME, CREATED_DATE) VALUES (?, ?)", ('John', '2017-09-09'))
实际上,虽然这可能会执行,但几乎可以肯定的是,它不是要插入到SQLite数据库中的日期数据。日期以常规文本形式存储,并且几乎应始终以ISO格式存储,年份后跟月份和日期。例如,您可以使用
'2017-09-08'
作为日期文字,但不要使用'08-09-17'
您应该使用带位置参数的准备语句:
c.execute("INSERT INTO {tn} (USERNAME, CREATED_DATE) VALUES ('{nm}', '{dt}')".format(tn='REDDIT_USER', nm='John', dt='09-09-17'))
关于将表名作为参数,这是不可能的,即使是从一个准备好的语句。通常,大多数查询不会在不同的表上运行。并且允许像这样更改表名可能会带来安全风险。如果需要查询两个不同的表,那么为这些表创建两个准备好的语句
顺便说一句,你说最上面的那个有效:
c.execute("INSERT INTO REDDIT_USER (USERNAME, CREATED_DATE) VALUES (?, ?)", ('John', '2017-09-09'))
实际上,虽然这可能会执行,但几乎可以肯定的是,它不是要插入到SQLite数据库中的日期数据。日期以常规文本形式存储,并且几乎应始终以ISO格式存储,年份后跟月份和日期。例如,您可以使用
'2017-09-08'
作为日期文字,但不要使用'08-09-17'
顺便说一句,我之所以要使用底部文字,是因为我将传入一些将更改的参数。我不能让它们像上面的一样恒定。你的错误是什么?如果您忘记在列值周围加引号,这将对您有所帮助。此外,不应以这种方式插入。相反,你需要使用参数。你能给我一个例子,你的意思是我应该做什么@mshsayemSee下面是Tim的答案。顺便说一句,我之所以要做下面的一个,是因为我要传递一些会改变的参数。我不能让它们像上面的一样恒定。你的错误是什么?如果您忘记在列值周围加引号,这将对您有所帮助。此外,不应以这种方式插入。相反,你需要使用参数。你能给我一个例子,你的意思是我应该做什么@Mshsayemse下面是Tim的答案。是的,日期只是一般性的,我有一个合适的日期格式。但我会继续尝试你的建议,谢谢你的建议!是的,日期只是一般的,我有一个合适的日期格式。但我会继续尝试你的建议,谢谢你的建议!