使用 python 在 mysql 查询结果中添加字符串的问题
problems to add a string on mysql query result with python
我想在 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: Parameters for query must be list or tuple.
我希望结果是这样的
| 56953404789 | some message |
知道是什么原因导致了我的错误吗?
提前感谢您的帮助
编辑:
提供注入安全方法:
使用sql CONCAT函数:
sql = "SELECT CONCAT(msisdn, ?) AS mensaje FROM perfiles"
cursorsql1.execute(sql, (mensaje,))
请注意 sqlite 上没有 CONCAT 函数,而是使用 ||运算符:
"SELECT msisdn || ? AS mensaje FROM perfiles"
我想在 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: Parameters for query must be list or tuple.
我希望结果是这样的
| 56953404789 | some message |
知道是什么原因导致了我的错误吗?
提前感谢您的帮助
编辑: 提供注入安全方法:
使用sql CONCAT函数:
sql = "SELECT CONCAT(msisdn, ?) AS mensaje FROM perfiles"
cursorsql1.execute(sql, (mensaje,))
请注意 sqlite 上没有 CONCAT 函数,而是使用 ||运算符:
"SELECT msisdn || ? AS mensaje FROM perfiles"