Problema para ingresar datos en mysql
Publicado por Jhonathan (7 intervenciones) el 17/04/2017 06:44:32
Hola amigos soy un poco nuevo en esto de python y estoy teniendo un problema con la sintaxis de mysql y es que no sé cómo ingresar datos a una tabla X, es decir, yo en mi base de datos tengo los 12 meses y en cada tabla tengo el número de días de ese mes, entonces yo leo el mes en el que estoy y quiero que me ingrese los datos en el mes que me lea la librería datetime, sin embargo, no sé cómo realizarlo intenté hacerlo de la siguiente manera:
Sin embargo, me genera un error diciendo lo siguiente:
ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Mayo' SET SENSOR1= 0,SENSOR2= 0,SENSOR3 = 0 WHERE DIA=4' at line 1")
La librería me dice que estoy en mayo debido a que lo hago en una raspberry y no tengo actualizada la fecha, pero eso no es importante.
Si pudieran ayudarme se los agradecería, muchas gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import MySQLdb
import datetime
# Establecemos la conexión con la base de datos
bd = MySQLdb.connect("127.0.0.1","root","proyectodegrado","Mediciones" )
# Preparamos el cursor que nos va a ayudar a realizar las operaciones con la base de datos
cursor = bd.cursor()
MONTHS = {
'1' : 'Enero',
'2' : 'Febrero',
'3' : 'Marzo',
'4' : 'Abril',
'5' : 'Mayo',
}
today = datetime.datetime.now()
month = MONTHS[str(today.month)]
day = today.day
LECTURA1 = 0
LECTURA2 = 0
LECTURA3 = 0
sql = "UPDATE %s SET SENSOR1= %s,SENSOR2= %s,SENSOR3 = %s WHERE DIA=%s"
cursor.execute(sql,(month,LECTURA1,LECTURA2,LECTURA3,day,))
# Efectuamos los cambios en la base de datos
bd.commit()
# Nos desconectamos de la base de datos
bd.close()
Sin embargo, me genera un error diciendo lo siguiente:
ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Mayo' SET SENSOR1= 0,SENSOR2= 0,SENSOR3 = 0 WHERE DIA=4' at line 1")
La librería me dice que estoy en mayo debido a que lo hago en una raspberry y no tengo actualizada la fecha, pero eso no es importante.
Si pudieran ayudarme se los agradecería, muchas gracias.
Valora esta pregunta
0