Я пытаюсь написать код, в котором после ввода имени и адреса электронной почты в командной строке следует обновить данные в базе данных Postgres.Английский не мой родной язык, но я буду стараться изо всех сил описать мою ситуацию.
Так что в основном при вводе cmd:
python myProgram.py jacob8 jacob8@company.com
Это должно обновить jacob8 в имени пользователяcolumn и jacob8@company.com в столбце электронной почты.
Итак, мой код такой:
import sys
import psycopg2
conn = psycopg2.connect("user=nana password=nana dbname=nana host=localhost")
cur = conn.cursor()
userName = str(sys.argv[1])
eMail = str(sys.argv[2])
cur.execute('UPDATE "table" SET "user_name" = userName WHERE "address"=%s', (mac,))
cur.execute('UPDATE "table" SET "user_email" = eMail WHERE "address"=%s', (mac,))
conn.commit()
... но по какой-то причине userName
, который я использую, где я 'Я пытаюсь установить, не распознает имя пользователя, которое я назначил как sys.argv[1]
, и то же самое относится и к eMail
.Когда я добавляю их в одинарные кавычки, он распознается, но портит (делает зеленую остальную часть строки) остальной частью строки, начинающейся с WHERE.
Я также пытался поставить sys.argv[1]
и sys.argv[2]
прямо в строку SET (например, UPDATE "table" SET "user_name" = sys.argv[1] WHERE
), но это доставляет мне такую же проблему - он больше не распознает import sys
.
Что мне здесь не хватает?Это явно связано с тем, как добавить кавычки, но я не могу найти правильный путь ..