解决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 socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
Python字符编码判断方法分析
Jul 01 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
详解用TensorFlow实现逻辑回归算法
May 02 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
Python闭包思想与用法浅析
Dec 27 Python
Django自定义用户表+自定义admin后台中的字段实例
Nov 18 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
基于Python的OCR实现示例
Apr 03 Python
python能自学吗
Jun 18 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
Sep 17 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
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
PHP7 其他修改
2021/03/09 PHP
jquery uaMatch源代码
2011/02/14 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
通过JS判断联网类型和连接状态的实现代码
2015/04/01 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
简单谈谈axios中的get,post方法
2017/06/25 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
2018/06/19 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
使用python获取CPU和内存信息的思路与实现(linux系统)
2014/01/03 Python
django js实现部分页面刷新的示例代码
2018/05/28 Python
python 利用pandas将arff文件转csv文件的方法
2019/02/12 Python
利用python画出AUC曲线的实例
2020/02/28 Python
python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例
2020/02/28 Python
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
保安队长职务说明书
2014/02/23 职场文书
小学生优秀评语大全
2014/04/22 职场文书
服务整改报告
2014/11/06 职场文书
高二化学教学反思
2016/02/22 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
如何用threejs实现实时多边形折射
2021/05/07 Javascript
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android
python神经网络ResNet50模型
2022/05/06 Python