【发布时间】:2016-02-26 06:24:19
【问题描述】:
有没有办法在将 SQL 输入传递给 python 中的 cursor.execute 命令之前正确清理它们?我知道您应该能够制作如下构造:
cursor.execute("insert into Attendees values (?, ?, ?)", (name, seminar, paid) )
要正确执行此操作,但它不适用于我的 ODBC 驱动程序 (4D V11) 和 pyodbc。
更具体地说,我正在尝试使用上述格式编写一个 INSERT 语句。当我运行代码时,插入了一条记录,但结果记录中只填充了数值变量——字符串为空白。如果我将 ODBC 驱动程序(和数据库,显然)切换到 pqodbc 和一个相同设置的 Postgresql 数据库(至少对于我试图插入的字段)相同的代码运行完美。这对我来说意味着问题出在 4D 驱动程序中,而不是 Python 中。也就是说,4D 驱动程序不太可能很快得到修复,所以我正在寻找其他解决方法。有什么建议么?谢谢
【问题讨论】:
-
如果您遇到支持不佳的模块,您最好尝试自己修复该模块。
-
(但如果它甚至不处理 strings,它可能与生产质量模块相去甚远,你根本不应该使用它。)跨度>
-
我使用的python module是pyodbc。我认为这很好。有问题的是系统级 4D ODBC 驱动程序。由于那是专有代码,我必须想出一个解决方法。
标签: python sql odbc sanitization 4d-database