LoginSignup
0
0

More than 1 year has passed since last update.

PostgreSQLで変数を使った際のエラー

Posted at

普段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もちゃんと基礎から勉強しないと・・・

参考:https://symfoware.blog.fc2.com/blog-entry-1257.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0