Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python在mysql查询结果中添加字符串时出现问题_Python_Mysql_String_List_Executemany - Fatal编程技术网

使用python在mysql查询结果中添加字符串时出现问题

使用python在mysql查询结果中添加字符串时出现问题,python,mysql,string,list,executemany,Python,Mysql,String,List,Executemany,我想在mysql中的查询结果中添加一个字符串 我尝试了以下代码: mensaje=input(“introzca el sms que desa envirar:”) cursorsql1=conectar.cursor() sql=“选择msisdn,”(mensaje)“值(%s)作为来自以下文件的mensaje:tarifa不喜欢“%Iot%”,透明属性不喜欢“%Momo%”,状态像“%active%”,msisdn像“56943404789”,并在子日期(当前日期,1)和当前日期之间创建

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

我尝试了以下代码:

mensaje=input(“introzca el sms que desa envirar:”)
cursorsql1=conectar.cursor()
sql=“选择msisdn,”(mensaje)“值(%s)作为来自以下文件的mensaje:tarifa不喜欢“%Iot%”,透明属性不喜欢“%Momo%”,状态像“%active%”,msisdn像“56943404789”,并在子日期(当前日期,1)和当前日期之间创建。格式(mensaje,值)
cursorsql1.executemany(sql,mensaje)
columnas=cursorsql1.fetchall()
打印(专栏)
错误是这样的


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

我希望结果是这样的

| 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"

尝试将参数作为列表放置:
cursorsql1.executemany(sql[mensaje])
mysql.connector.errors.ProgrammingError:执行操作失败;无法处理参数:(Thankkkss以这种方式完成此工作:“选择msisdn,{}作为mensaje from…”。格式化(mensaje)对于记录非常危险,如果您将其设计为供其他人使用,它很容易受到SQL注入攻击。感谢您的警告,但这是我个人使用的:)