psycopg2.ProgrammingError: syntax error
psycopg2.ProgrammingError: syntax error
我知道有很多类似的问题,但我还没有找到对我有帮助的问题。
我正在使用 Python 和 psycopg2 来连接 PostGresQL 数据库。这是我的代码:
conn = psycopg2.connect(dbname=db_name, user=user_name)
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
cursor = conn.cursor()
add_query = 'CREATE ROLE %s WITH CREATEDB LOGIN PASSWORD \'%s\''
add_data = (user_name, password)
cursor.execute(add_query, add_data)
我一直收到这个错误:
psycopg2.ProgrammingError: syntax error at or near "'foo'" LINE 1: CREATE ROLE 'foo' WITH CREATEDB LOGIN PASSWORD ''bar''
我认为这是转义引号的问题,但我有我能想到的所有斜杠和引号组合,但没有运气。
from psycopg2.extensions import AsIs
add_query = "CREATE ROLE %s WITH CREATEDB LOGIN PASSWORD %s"
add_data = (AsIs(user), password)
角色名称是一个标识符,因此没有单引号。如果需要非法字符,可以用双引号引起来,但否则不是个好主意。
密码是一个字符串,所以让 Psycopg 适应并转义它。
我知道有很多类似的问题,但我还没有找到对我有帮助的问题。
我正在使用 Python 和 psycopg2 来连接 PostGresQL 数据库。这是我的代码:
conn = psycopg2.connect(dbname=db_name, user=user_name)
conn.set_isolation_level(psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT)
cursor = conn.cursor()
add_query = 'CREATE ROLE %s WITH CREATEDB LOGIN PASSWORD \'%s\''
add_data = (user_name, password)
cursor.execute(add_query, add_data)
我一直收到这个错误:
psycopg2.ProgrammingError: syntax error at or near "'foo'" LINE 1: CREATE ROLE 'foo' WITH CREATEDB LOGIN PASSWORD ''bar''
我认为这是转义引号的问题,但我有我能想到的所有斜杠和引号组合,但没有运气。
from psycopg2.extensions import AsIs
add_query = "CREATE ROLE %s WITH CREATEDB LOGIN PASSWORD %s"
add_data = (AsIs(user), password)
角色名称是一个标识符,因此没有单引号。如果需要非法字符,可以用双引号引起来,但否则不是个好主意。
密码是一个字符串,所以让 Psycopg 适应并转义它。