In the last chunk of example code, the incorrect syntax for cursor.execute()
is used.
import psycopg2
conn = psycopg2.connect("dbname=dq user=dq")
cur = conn.cursor()
cur.execute("""
PREPARE insert_user(integer, text, text, text) AS
INSERT INTO users VALUES ($1, $2, $3, $4);
""")
cur.execute("""
EXECUTE insert_user($s, $s, $s, $s);
""", (10002, '[email protected]', 'Bob', '101 Fake Street'))
The second cur.execute()
call should be
cur.execute("""
EXECUTE insert_user(%s, %s, %s, %s);
""", (10002, '[email protected]', 'Bob', '101 Fake Street'))
where each $s
should be %s
.