Mysql Python:Mysql语句中并没有使用所有参数
因此,我试图将数据作为变量输入到表中,但我似乎一直收到错误mysql.connector.errors.ProgrammingError:SQL语句中没有使用所有参数,我使用了%s而不是行名称,但我似乎一直收到相同的错误。我怀疑这是我的语法,但我似乎无法理解。顺便说一句,这是我第一次同时使用python和MySQLMysql 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"
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)
或
索引器错误:元组索引超出范围索引器错误:元组索引超出范围