MySQLdbドライバを使ってmysqlデータベースにリストを挿入する際に問題が発生しました。データベース内のリストを挿入するMySQLdb Python3.6
import MySQLdb
db = MySQLdb.connect("localhost", "user", "password", "db")
c = db.cursor()
cities = ["New York", "NY", 8400000]
sql = "INSERT INTO projecten.population(city, state, population) VALUES(?, ?, ?)", cities
try:
c.execute(sql)
db.commit()
except MySQLdb.OperationalError:
print("error")
finally:
db.close()
これはエラー
TypeError: a bytes-like object is required, not 'tuple'
を得たが、%を使用すると、SQLインジェクション –
有効なポイントと安全ではありません。 cur.execute( "INSERT INTO projecten.population(city、state、population)VALUES(%s、%s、%s)"、(cities、)を参照してください)http://mysql-python.sourceforgeを参照してください。 net/MySQLdb.html#some-examples – Rishi
変数に1つの値が含まれている場合にのみ、(cities、)を使用できます。変数に複数の値が含まれている場合は、(都市)を使用します。 –