PDA

View Full Version : [Python] mysql connect


ugo73
04-10-2020, 19:47
Ciao,

ho creato un semplice script dove inserisco tre variabili in un database mysql e python 2

#!/usr/bin/python
import mysql.connector
absvprs_1000 = 1
absvprs_0975 = 2
absvprs_0950 = 3
connection = mysql.connector.connect(
host="localhost",
user="myuser",
password="mypassword",
database="DATI_MODELLI"
)

sql = "INSERT INTO GFS (absolute_vorticity_1000, absolute_vorticity_0975, absolute_vorticity_0950) VALUES (absvprs_1000, absvprs_0975, absvprs_0950)"

cursor = connection.cursor()
cursor.execute(sql)
connection.commit()
cursor.close()

ma ricevo il seguente errore

Traceback (most recent call last):
File "my.py", line 16, in <module>
cursor.execute(sql)
File "/usr/local/lib/python2.7/dist-packages/mysql/connector/cursor_cext.py", line 266, in execute
raw_as_string=self._raw_as_string)
File "/usr/local/lib/python2.7/dist-packages/mysql/connector/connection_cext.py", line 492, in cmd_query
sqlstate=exc.sqlstate)
mysql.connector.errors.ProgrammingError: 1054 (42S22): Unknown column 'absvprs_1000' in 'field list'

dove sbaglio?

Grazie

Ugo

Kaya
05-10-2020, 10:54
Forse perchč i valori devi metterli tra singoli apici? 'absvprs_1000' ?

Suggerimento, usa la forma cosė:


sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

A mio modo č pių pulita da vedere (e non ricordo se ti fa anche gli escape per evitare le injections)

ugo73
05-10-2020, 12:55
Perfetto ora funziona, adesso mi tocca inserire altri 392 records:mc:

Grazie