|
27
|
| Dariusz Walczak · 技术社区 · 17 年前 |
|
|
1
29
好吧,所以我很好奇,去看看psycopg2的来源。事实证明,我不需要再深入到示例文件夹中:) 是的,这是psycopg2特有的。基本上,如果你只想引用一个字符串,你可以这样做:
但您可能想做的是编写和注册自己的适配器; 在psycopg2的examples文件夹中,您可以找到该文件 'myfirstrecipe.py' 下面是一个如何以特殊方式强制转换和引用特定类型的示例。 如果你有你想做的事情的对象,你可以创建一个符合“ipsycopgsqlquote”协议的适配器(见myfirstrecipe.py示例的pydocs…事实上这是我能找到的唯一一个对该名称的引用),引用你的对象,然后像这样注册它:
另外,其他例子也很有趣;特别是。 'dialtone.py' 和 'simple.py' . |
|
|
2
15
我猜你在找 mogrify 功能。 例子:
|
|
|
3
2
你应该尽量避免自己报价。正如人们指出的那样,它不仅是特定于数据库的,而且引用中的缺陷也是SQL注入错误的根源。 如果不想单独传递查询和值,则传递参数列表:
(我可能有cursor.execute的语法错误)这里的重点是,仅仅因为cursor.execute接受了许多参数,这并不意味着您必须单独处理它们。你可以将它们作为一个列表来处理。 |
|
|
4
1
我认为你在回避的背后没有给出足够的理由来以正确的方式做到这一点。请按照设计的方式使用API,不要试图使代码对下一个人的可读性变差,更脆弱。 |
|
|
5
0
这将取决于数据库。例如,对于mysqldb,
我想Postgres也有类似的功能,但我不认为有函数可以将值作为DBAPI2.0规范的一部分进行转义。 |
|
|
6
0
这将依赖于数据库(IIRC,MySQL允许
如果我错了,有人纠正我,但双引号法是标准方法。 可能值得研究一下其他数据库抽象库的功能(sqlacalchemy、cx-oracle、sqlite等)。 我不得不问——为什么要内联这些值而不是绑定它们? |
|
|
7
0
这个
|
|
|
8
0
PyPika 在构建SQL语句的另一个好选项中。使用示例(基于项目主页上的示例):
|
|
|
9
-1
如果使用django,您可能希望使用自动适应当前配置DBMS的报价功能:
|
|
10
-1
可以做简单的报价工作,至少在MySQL中有效。不过,我们真正需要的是cursor.format()函数,它的工作方式与cursor.execute()类似,只是它将返回结果查询,而不是执行查询。有时您还不希望执行查询,例如,您可能希望先将其记录下来,或者在继续执行查询之前将其打印出来进行调试。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |