普段MySQL使ってるからか、PostgreSQLでちょっとだけハマったこと
import psycopg2
conn = psycopg2.connect("user=" + users +" dbname=" + dbnames +" password=" + passwords, host=host, port=port)
cur = conn.cursor()
cur.execute("SELECT * FROM mydatabase WHERE user_id = %s;",(user_id))
results = cur.fetchall()[0]
print(results[1])
cur.close()
conn.close()
変数を使ってデータベースから取り出すコードなんだけど
TypeError: not all arguments converted during string formatting
???
import psycopg2
conn = psycopg2.connect("user=" + users +" dbname=" + dbnames +" password=" + passwords, host=host, port=port)
cur = conn.cursor()
- cur.execute("SELECT * FROM mydatabase WHERE user_id = %s;",(user_id))
+ cur.execute("SELECT * FROM mydatabase WHERE user_id = %s;",(user_id,))
results = cur.fetchall()[0]
print(results[1])
cur.close()
conn.close()
1つの変数だとカンマをつけないとだめらしい。
VALUES (%s,%s,%s)",(user_id, user_name, time)
ちなみにこういう複数だと問題なし。
SQLもちゃんと基礎から勉強しないと・・・