Mysql Python:Mysql语句中并没有使用所有参数

Mysql Python:Mysql语句中并没有使用所有参数,python,mysql,python-2.7,Python,Mysql,Python 2.7,因此,我试图将数据作为变量输入到表中,但我似乎一直收到错误mysql.connector.errors.ProgrammingError:SQL语句中没有使用所有参数,我使用了%s而不是行名称,但我似乎一直收到相同的错误。我怀疑这是我的语法,但我似乎无法理解。顺便说一句,这是我第一次同时使用python和MySQL import mysql.connector Sensor_ID = "test" Location = "room" Sensor_IP = "192.168.1.1"

因此,我试图将数据作为变量输入到表中,但我似乎一直收到错误mysql.connector.errors.ProgrammingError:SQL语句中没有使用所有参数,我使用了%s而不是行名称,但我似乎一直收到相同的错误。我怀疑这是我的语法,但我似乎无法理解。顺便说一句,这是我第一次同时使用python和MySQL

import mysql.connector


Sensor_ID = "test"

Location = "room"

Sensor_IP = "192.168.1.1"

Sensor_1 = "10"

Sensor_1_Unit = "*C"

Sensor_2 =""

Sensor_2_Unit = ""

Sensor_3 = ""

Sensor_3_Unit = ""

conn = mysql.connector.connect(user='******', password='********',    host='******', database='*****') #blanked my user n pass
mycursor = conn.cursor()
mycursor.execute('SHOW TABLES')
print(mycursor.fetchall())
print ""

mycursor.execute("SHOW VARIABLES LIKE '%version%'")
print "Version:",(mycursor.fetchall())
#works up to here

mycursor.execute("INSERT INTO iot_sensors VALUES (ID, Sensor_ID, Location, Sensor_IP, Sensor_1, Sensor_1_Unit, Sensor_2,Sensor_2_Unit, Sensor_3,   Sensor_3_Unit)",(Sensor_ID,Location,Sensor_IP,Sensor_1,Sensor_1_Unit,Sensor_2,Sensor_2_Unit,Sens or_3,Sensor_3_Unit))
conn.commit()

  #    Sensor_ID,Location,Sensor_IP,Sensor_1,Sensor_1_Unit,Sensor_2,Sensor_2_Unit,Sensor_3,Sensor_3_Unit
创建表IoT_传感器(

ID INT非空自动增量

传感器ID VARCHAR(15)不为空

位置VARCHAR(20)不为空

传感器IP VARCHAR(15)不为空

传感器1 VARCHAR(15)不为空

传感器1单元VARCHAR(15)不为空

传感器2 VARCHAR(15)

传感器2单元VARCHAR(15)

传感器3 VARCHAR(15)

传感器3单元VARCHAR(15)

时间戳时间戳不为空


主键(ID))

您需要将%s放入SQL语句中

mycursor.execute("INSERT INTO iot_sensors VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",(Sensor_ID,Location,Sensor_IP,Sensor_1,Sensor_1_Unit,Sensor_2,Sensor_2_Unit,Sens or_3,Sensor_3_Unit))

请参见中的示例。

您需要将%s放入SQL语句中

mycursor.execute("INSERT INTO iot_sensors VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",(Sensor_ID,Location,Sensor_IP,Sensor_1,Sensor_1_Unit,Sensor_2,Sensor_2_Unit,Sens or_3,Sensor_3_Unit))

请参阅中的示例。

看起来您在insert语句中缺少了实际变量。请尝试使用已知方法之一%s或.format方法格式化它们。插入时,表中也没有使用时间戳、最后一列和值。如果只引用表,则列不匹配。您必须明确说明要填充哪些列。您可以使用CURRENT_TIMESTAMP,因为它表示列描述为NOTNULL

query = ("""Insert into iot_sensors (Sensor_ID, Location, Sensor_IP, Sensor_1, Sensor_1_Unit, Sensor_2, Sensor_2_Unit, Sensor_3, Sensor_3_Unit) values
                    ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}');""".format(Sensor_ID,Location,Sensor_IP,Sensor_1,Sensor_1_Unit,Sensor_2,Sensor_2_Unit,Sensor_3,Sensor_3_Unit))
mycursor.execute(query)


看起来insert语句中缺少实际变量。请尝试使用已知方法之一%s或.format方法格式化它们。插入时,表中也没有使用时间戳、最后一列和值。如果只引用表,则列不匹配。您必须明确说明要填充哪些列。您可以使用CURRENT_TIMESTAMP,因为它表示列描述为NOTNULL

query = ("""Insert into iot_sensors (Sensor_ID, Location, Sensor_IP, Sensor_1, Sensor_1_Unit, Sensor_2, Sensor_2_Unit, Sensor_3, Sensor_3_Unit) values
                    ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}');""".format(Sensor_ID,Location,Sensor_IP,Sensor_1,Sensor_1_Unit,Sensor_2,Sensor_2_Unit,Sensor_3,Sensor_3_Unit))
mycursor.execute(query)


索引器错误:元组索引超出范围索引器错误:元组索引超出范围