表,字段和模式上的psycopg2 E'


问题内容

我遇到了与以下问题相同的问题: python在字符串中添加“
E”

给出的所有答案都是有意义的,但是我对此很不满意。

问题在于,psycopg2不仅会转义值,还会转出如下的架构,表和列名称:

CREATE TABLE E'Tablename' (E'identificatie' VARCHAR(16))

它根本不应该!我如何摆脱表名和列的E和’‘,而保留字段值的它们呢?

替代方案

'CREATE TABLE ' + tablename + ' (' + fieldname... %

使它容易再次受到sql注入的攻击。

卡在岩石和坚硬的地方之间。


问题答案:

不管是好是坏,Python接口和Psycopg通常不支持,尤其是将用户提供的标识符替换为SQL命令。您将不得不自己动手。只需几行代码即可完成。