0
我是Python和SQL的新手。 我最終想做的事情是用戶鍵入一個值,以便在PostgreSQL中插入表中。 我已經嘗試了一些方法,我可以找到,如何使用變量插入到表中從python到PostgreSQL
- https://www.postgresql.org/docs/9.1/static/plpgsql-structure.html
- http://www.java2s.com/Code/PostgreSQL/Postgre-SQL/UsingavariableinanINSERT.htm
,但我一直沒能成功地插入。 這是我現在有:
import psycopg2
from config import config
def create_tables(a):
""" create tables in the PostgreSQL database"""
commands = (
"""
SET num 10,
INSERT INTO Hotel_A (date, Suite, StandardKing) VALUES ('2017-09-12', num, 3)
""",
"""
INSERT INTO Hotel_A (date, Suite, StandardKing) VALUES ('2017-09-29', 5, 3)
""",
"""
INSERT INTO Hotel_A (date, Suite, StandardKing) VALUES ('2017-09-23', 5, 3)
"""
)
conn = None
try:
# read the connection parameters
params = config()
# connect to the PostgreSQL server
conn = psycopg2.connect(**params)
cur = conn.cursor()
# create table one by one
for command in commands:
cur.execute(command)
# close communication with the PostgreSQL database server
cur.close()
# commit the changes
conn.commit()
except (Exception, psycopg2.DatabaseError) as error:
print(error)
finally:
if conn is not None:
conn.close()
HotelASuite = 10
if __name__ == '__main__':
create_tables(HotelASuite)
我想要做的NUM = HotelASuite這是我的目標。
非常感謝您的幫助! 我使用Python 2.7和PostgreSQL 9.6。
能否請您解釋一下你的問題 –
包含在問題的代碼,而不是它的鏈接。換句話說,產生[mcve]。看看例如[這個Q/A](https://stackoverflow.com/questions/9075349/using-insert-with-a-postgresql-database-using-python)如何使用佔位符。最後,永遠不要手動將字符串格式或連接值連接到查詢。 –
因此,當我插入這樣的值時,INSERT INTO Hotel_A(date,Suite,StandardKing)VALUES('2017-09-12',5,3),而不是寫入實際值,我想使用變量。所以我希望它看起來像INSERT INTO Hotel_A(date,Suite,StandardKing)VALUES(date,int1,int2)其中date,int1和int2實際上是2017-09-12,5和3.這是否有意義? –