用python在mysql查询结果上添加字符串的问题

我想在mysql查询结果中添加一个字符串。

我尝试了以下代码:

mensaje = input ("introduzca el sms que desea enviar: ")
cursorsql1 = conectar.cursor()
sql = "select msisdn,'(mensaje)'VALUES(%s) as mensaje from perfiles where tarifa not like '%Iot%' and transparent_properties not like '%Momo%' and state like '%active%' and msisdn like '56943404789' and created_at between subdate(current_date,1) and current_date".format(mensaje,values)
cursorsql1.executemany(sql,mensaje)
columnas = cursorsql1.fetchall()
print(columnas)

错误是这个

  

mysql.connector.errors.ProgrammingError:查询参数必须是列表或元组。

我希望结果看起来像这样

| 56953404789 | some message  |

您知道发生什么情况导致我的错误吗?

在此先感谢您的帮助

hmd520 回答:用python在mysql查询结果上添加字符串的问题

编辑: 提供了注射安全方法:


使用sql CONCAT函数:

sql = "SELECT CONCAT(msisdn,?) AS mensaje FROM perfiles"
cursorsql1.execute(sql,(mensaje,))

请注意,在sqlite上没有CONCAT函数,而是使用||。运算符:

"SELECT msisdn || ? AS mensaje FROM perfiles"
本文链接:https://www.f2er.com/3151083.html

大家都在问