Если я попытаюсь вставить в свою базу данных многозначное значение, например «12», это не сработает.
Сообщение об ошибке:
Incorrect number of arguments executing prepared Statement
Если я попытаюсь вставить однозначное значение, например «9», в мою базу данных, это сработает.
Где моя ошибка?
Вещи, которые я пробовал:
Я устанавливаю переменную в постоянное значение в разных позициях кода.
Результатом было то, что он работает только для значений больше 9, если это значение является статическим в запросе.
т.д .:
query = """insert into Sklaven (Adresse) values(12)"""
result = cursor.execute(query)
Если я сделаю это динамически, это не сработает.
например.:
query = """insert into Sklaven (Adresse) values(%s)"""
result = cursor.execute(query, Wert)
или же
result = cursor.execute(query, "12")
Весь код:
Import mysql.connector
def insert_Value(Adressen):
try:
connection = mysql.connection.connect(host= '*.*.*.*',
database ='*',
user = '*',
Password ='*')
Cursor = Connection.cursor(prepared=True)
query = """insert into Sklaven (Adresse) values(%s)"""
Wert = Adressen
print ("Value = ", Wert) #showing current value
print ("len = ", len(Wert)) #showing lenght of current value
result = cursor.execute(query, Wert)
print("ok")
connection.commit()
expect mysql.connector.Error as error:
connection.rollback()
print("not ok {}".format(error))
S=8
for x in range(0,7):
S = str(S)
inserr_Value(S)
S=int(S)
S=S+1
Shell Returns:
value = 8
len = 1
ok
value = 9
len = 1
ok
value = 10
len = 2
not ok 1210: Incorrect number of arguments executing prepared Statement
value = 11
len = 2
not ok 1210: Incorrect number of arguments executing prepared Statement
value = 12
len = 2
not ok 1210: Incorrect number of arguments executing prepared Statement
value = 13
len = 2
not ok 1210: Incorrect number of arguments executing prepared Statement
value = 14
len = 2
not ok 1210: Incorrect number of arguments executing prepared Statement