[英]How to use a string variable in psycopg2 select query?
從PostgreSQL列“ u62194”獲取數據時出錯
sql = """select userid from myusers WHERE userid='u62194' """ Of
course the hardcoded value works as it should.
import psycopg2
def select_tables():
someuserid = 'u62194'
print(someuserid)
""" Run a select using a variable that is a string """
sql = """select userid from myusers WHERE userid=%s """ %someuserid
conn = None
try:
conn = psycopg2.connect(user = "postgres",
password = "xxxxxx",
host = "127.0.0.1",
port = "5432",
database = "mydb")
cur = conn.cursor()
cur.execute(sql, (select_tables,))
print(cur.fetchone())
cur.close()
""" "myusers" table: id userid 1 u51884 2 u62194 3 u26922 """
我應該得到:u62194
我認為您使用的查詢參數不正確。 將列表實例作為參數傳遞給execute
函數,以傳遞查詢參數。 psycopg2手冊從內存中顯式地阻止您以嘗試的方式執行此操作。 嘗試更接近於此的方法:
import psycopg2
someuserid = "u62194"
conn = psycopg2.connect(
user = "postgres",
password = "xxxxxx",
host = "127.0.0.1",
port = "5432",
database = "mydb"
)
cur = conn.cursor()
# Use a list here to insert query parameters into the query string.
cur.execute(
"""
SELECT userid
FROM myusers u
WHERE u.userid = %s;
""",
[someuserid,]
)
result = cur.fetchone()
print(result)
cur.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.