我希望有人能帮助我,因为我已经在这个问题上挣扎了两天了。。。
使用最新的pg8000驱动程序(1.9.4),我准备了一个带有参数的语句,当尝试执行它时,会出现以下错误:
ValueError: invalid literal for int() with base 10: 'SELECT'
我发现使用pg8000驱动程序(1.08)时没有出现此错误(请注意,当我返回到开发环境时)
这是我的代码:
self._dbConnection = dbapi.connect(host=self.host,
user=self.user,
password=self.pwd ,
database=self.name,
port=self.port)
stmt = "SELECT lb FROM vig.departement WHERE id = %s"
cursor = self.dbConnection.cursor()
cursor.execute(stmt, [1])
row = cursor.fetchone()
cursor.close()
我看不出哪里做错了,或者在pg8000 1.08和1.9.4之间遗漏了什么。
更多信息以防万一:我的数据库版本是PostgreSQL 8.3.8(from
psql --version
),由Cent0S 5.3托管,我的客户机执行python脚本是在Cent0S 6.3上。谢谢你的帮助。
最佳答案
我是pg8000的贡献者,问题是pg8000不支持PostgreSQL 8.3。事实上,根据http://www.postgresql.org/support/versioning/对Postgres 8.3的支持,一般在2013年2月结束。
关于python - Python pg8000 1.9.4参数化语句错误不在pg8000 1.08中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21729286/