Mysql插入。不能使用多个字符值

问题描述 投票:-1回答:1

如果我尝试在我的数据库中插入多个字符值,如“12”,它将无法正常工作。 Error_message: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

壳牌退货:

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
python mysql-python
1个回答
0
投票

你在做什么

tuple_result = tuple(Wert)

在实际查询之前,有机会吗?

在Python命令行上尝试tuple("12"),然后你会看到问题所在:它出现在('1', '2')。在这种情况下,字符串通常被视为许多操作的字符列表(或unicode代码点,如果您愿意)。

相反,你应该简单地构造你的元组

tuple_result = (Wert,)

其次是

result = cursor.execute(query, insert_tuple)

(你甚至可以使用tuple_result = Wert,,但为了清楚起见,我不会这样做)。

© www.soinside.com 2019 - 2024. All rights reserved.