我已经尝试进行一些sql连接,并且最近遇到了一个问题,我无法将isert日期放入表中。我给了下面的代码。我应该在此添加什么?
import mysql.connector as con
db = con.connect(host = "localhost", user = "root", password = "root", database = "vish")
if db.is_connected():
print("success")
a = int(input("roll no. : "))
b = input("name : ")
c = int(input("phone : "))
cursor = db.cursor()
q = ("insert into student values({}, '{}', {})".format(a,b,c))
cursor.execute(q)
db.commit()
[如果您有一个表t
和一列c
,并且希望插入日期文字,则该文字的格式为'YYYY-MM-DD'
,例如:
INSERT INTO t(c) VALUES('2020-01-11')
但是,只要您从“外部”获取输入,就使自己不受SQL Injection攻击的影响,应该使用准备好的语句。如果您已解析输入日期并从输入中构建了字符串文字,例如'2020-01-11'
,那么您是安全的。但是,如果您隔离了年,月和日,并且由于任何其他未经严格验证的值而仍在使用准备好的语句,则还可以为日期使用'?'
参数,这样:
from datetime import date
today = date(2020, 1, 11)
cursor = db.cursor()
cursor.execute("INSERT INTO t(c) VALUES(?)", (today,))
cursor.commit()