返回信息流(1)sql += last_reply_time
sql += ', now(),'(这句语句写的对吗?)
sql += reply_num
(2)sql1 += reply_time
sql1 += '\', now(),'(这个语写的对吗?不知道这个和上面的哪个对,或者都需要修改)
sql1 += ')'
now() 那块斜线应该加几个?
这是一条镜像帖。来源:北邮人论坛 / soft-design / #42259同步于 2012/5/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
在python中 插入时间语句怎么写
redspider
2012/5/9镜像同步11 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
oh亲,不要这样构造sql语句。请用python的sql参数模板功能。
#!/usr/bin/python2
import sqlite3
import datetime
import contextlib
with sqlite3.connect("testing.db") as conn:
with contextlib.closing(conn.cursor()) as cursor:
cursor.execute('''create table if not exists person (
id int,
name text,
birthday text
)''')
cursor.execute('''insert into person values
(1, 'Zhang San', "1980-01-02")
''')
cursor.execute('''insert into person values
(2, 'Li Si', ?)
''', [datetime.datetime(1990,3,4)])
cursor.execute('''insert into person values
(?, ?, ?)
''', [3, "Wang Wu", datetime.datetime.now()])
cursor.executemany('''insert into person values
(?, ?, ?)
''', [
(4, "Alice", datetime.datetime(2001,7,8)),
(5, "Bob", datetime.datetime(2002,9,10)),
(6, "Cindy", datetime.datetime(2003,11,12)),
])
d_str = raw_input("Before which date? (in yyyy-MM-dd. for example: 1995-5-6): ")
d = datetime.datetime.strptime(d_str, "%Y-%m-%d")
cursor.execute('''select * from person where birthday < ?''',
[ d ])
a = cursor.fetchall()
print a
【 在 redspider 的大作中提到: 】
: (1)sql += last_reply_time
: sql += ', now(),'(这句语句写的对吗?)
: sql += reply_num
: ...................
还有一个原因:这样通过拼接构造sql语句,会引入“sql注入”漏洞。
转载一个笑话:
一个家长接到电话:
Teacher: Hi. This is your son's school. We are having some computer trouble.
Mom: Oh dear! Did he break something?
Teacher: In a way... Did you really name your son "Robert'); DROP TABLE students --"?
Mom: Yes. Little Bobby Tables, we call him.
Teacher: Well, we've lost this year's student records. I hope you're happy.
Mom: And I hope you've learned to sanitize your database input.
【 在 poppick 的大作中提到: 】
: why?
这个我还真不知道
参数模板可以防止sql 注入?它会检查字符串输入?
这样理论上任何语言都不应该直接使用字符串拼接sql
【 在 wks 的大作中提到: 】
: 还有一个原因:这样通过拼接构造sql语句,会引入“sql注入”漏洞。
: 转载一个笑话:
: 一个家长接到电话:
: ...................
正确。别的语言的SQL接口都有模板。比如Java。
【 在 wang6120 的大作中提到: 】
: 这个我还真不知道
: 参数模板可以防止sql 注入?它会检查字符串输入?
: 这样理论上任何语言都不应该直接使用字符串拼接sql
【 在 wks 的大作中提到: 】
: 还有一个原因:这样通过拼接构造sql语句,会引入“sql注入”漏洞。
: 转载一个笑话:
: 一个家长接到电话:
: ...................
防sql注入一般还是开发人员添加的吧,一些框架会提供处理函数,但还都是开发人员去调用
一般都是bind text的貌似(SQLite可移植的C, 其他的不知道
【 在 wang6120 的大作中提到: 】
: 这个我还真不知道
: 参数模板可以防止sql 注入?它会检查字符串输入?
: 这样理论上任何语言都不应该直接使用字符串拼接sql