解决python 执行sql语句时所传参数含有单引号的问题


Posted in Python onJune 06, 2020

在编写自己的程序时,需要实现将数据导入数据库,并且是带参数的传递。

执行语句如下:

sql_str = "INSERT INTO teacher(t_name, t_info, t_phone, t_email) VALUES\
(\'%s\', \'%s\', \'%s\', \'%s\')" % (result, result2, phoneNumber, Email)

cur.execute(sql_str)

执行程序后,产生错误:

ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '07、PRICAI'08、ACML'09 程序委员会主席/共同主席,多次担任 ACM K' at line 1")

发现是因为result2参数为一个字符串,而字符串中出现了单引号 ',mysql语句受到影响报错。

原本认为这个问题应该会是有标准解决方案,可是网上查询了一下,遇到这个问题的人不少,但没有很好的方法解决。

于是考虑了一下,可以让sql语句在读取到单引号时,知道这是字符串文本的单引号,所以可以将参数中单引号替换为 \' ,这样或许可以顺利语句如下:

result2 = result2.replace("'","\\'") #将result2中的 ' 替换为 \'

PS: 这里请务必看清双引号以及反斜杠的使用:)

经过测试,问题得到了顺利解决。

补充知识:python动态生成变量及sql语句与DF表转化

先说效果:

解决python 执行sql语句时所传参数含有单引号的问题

如图,本来是这样的一个DF表,表示各字段限制条件(A、B、C、D均为字段名)

解决python 执行sql语句时所传参数含有单引号的问题

通过下面步骤转化为一条sql语句,当然也做了反向操作

for i in range(3):
locals()['f'+str(i)]=[]

import pandas as pd
import numpy as np
a = pd.DataFrame({"A":[">=",5],
     "B":["<",6],
     "C":["in",'("ha","he")'],
     "D":["like","*q*"]
     })
print(a)
b = []
for i in a.columns:
 b.append(str(i)+" "+str(a[i][0])+" "+str(a[i][1]).strip())
c = " and ".join(b)
 #b = b+str(i)+" "+str(a[i][0])+" "+str(a[i][1])+" "+"and"+" "
#print(c)

d = c.split(" and ")
for i in range(3):
 locals()['f'+str(i)]=[]
 for j in (range(len(d))):
  f = d[j].split(" ")
  locals()['f' + str(i)].append(f[i])

print(f0,f1,f2)
g = pd.DataFrame(columns=f0,data=[f1,f2])
print(g)

以上这篇解决python 执行sql语句时所传参数含有单引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python单线程实现多个定时器示例
Mar 30 Python
使用Python设置tmpfs来加速项目的教程
Apr 17 Python
python 多线程中子线程和主线程相互通信方法
Nov 09 Python
python for 循环获取index索引的方法
Feb 01 Python
linux安装python修改默认python版本方法
Mar 31 Python
Python3.6中Twisted模块安装的问题与解决
Apr 15 Python
python的turtle库使用详解
May 10 Python
django表单的Widgets使用详解
Jul 22 Python
python目标检测给图画框,bbox画到图上并保存案例
Mar 10 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
用Python制作音乐海报
Jan 26 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 #Python
python 解决mysql where in 对列表(list,,array)问题
Jun 06 #Python
在python中使用pyspark读写Hive数据操作
Jun 06 #Python
使用Python构造hive insert语句说明
Jun 06 #Python
Python通过kerberos安全认证操作kafka方式
Jun 06 #Python
pandas分批读取大数据集教程
Jun 06 #Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 #Python
You might like
中国的第一台收音机
2021/03/01 无线电
风格模板初级不完全修改教程
2006/10/09 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
php的$_FILES的临时储存文件与回收机制实测过程
2013/07/12 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
php 中序列化和json使用介绍
2013/07/08 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
修复bash漏洞的shell脚本分享
2014/12/31 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
详解最新vue-cli 2.9.1的webpack存在问题
2017/12/16 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
Python3基础之函数用法
2014/08/13 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
python连接PostgreSQL过程解析
2020/02/09 Python
python 连续不等式语法糖实例
2020/04/15 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
一文彻底解决HTML5页面中长按保存图片功能
2019/06/10 HTML / CSS
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
CheapTickets香港机票预订网站:CheapTickets.hk
2019/06/26 全球购物
意大利在线药房:Saninforma
2021/02/11 全球购物
课前一分钟演讲稿
2014/08/26 职场文书
运动会加油稿100字
2014/09/19 职场文书
80后婚前协议书范本
2014/10/24 职场文书
写给导师的自荐信
2015/03/06 职场文书
2015年实习生工作总结报告
2015/04/28 职场文书
2015年电气技术员工作总结
2015/07/24 职场文书
《七律·长征》教学反思
2016/02/16 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书
python解析照片拍摄时间进行图片整理
2022/07/23 Python