python - sqlite中的sql语句
PHP中文网
PHP中文网 2017-04-17 10:57:17
[Python讨论组]

帮助上的例子

import sqlite3
import md5

def md5sum(t):
    return md5.md5(t).hexdigest()

con = sqlite3.connect(":memory:")
con.create_function("md5", 1, md5sum)
cur = con.cursor()
cur.execute("select md5(?)", ("foo",)) // 这行是什么意思?
print cur.fetchone()[0]

有注释那行是什么意思?
还有这个cur.execute("select ?", (p,))文档上也不说,真TM的气人,法克

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(2)
迷茫

看样子,应该是,这一行等于

cur.execute("select md5(foo)");
大家讲道理

根据文档:

Instead, use the DB-API’s parameter substitution. Put ? as a placeholder wherever you want to use a value, and then provide a tuple of values as the second argument to the cursor’s execute() method.

之所以用placeholder,是因为直接使用字符串连接生成SQL代码这种做法是非常糟糕的,轻则字符串没有escape导致语法错误,重则可能遭受潜在的SQL注入攻击。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号