帮助上的例子importsqlite3importmd5defmd5sum(t):returnmd5.md5(t).hexdigest()con=sqlite3.connect(":memory:")con.create_function("md5",1,md5sum)cur=con.cursor()cur.execute("selectmd5(?)",("foo",))//这行是什么意思?printcur.fetchone()[0]有注释那行是什么意思?还有这个cur.execute("select?",(p,))文档上也不说,真TM的气人,法克
2 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
根据文档:Instead,usetheDB-API’sparametersubstitution.Put?asaplaceholderwhereveryouwanttouseavalue,andthenprovideatupleofvaluesasthesecondargumenttothecursor’sexecute()method.之所以用placeholder,是因为直接使用字符串连接生成SQL代码这种做法是非常糟糕的,轻则字符串没有escape导致语法错误,重则可能遭受潜在的SQL注入攻击。
添加回答
举报
0/150
提交
取消