解决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 19 Python
详解Python nose单元测试框架的安装与使用
Dec 20 Python
python matplotlib画图实例代码分享
Dec 27 Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 Python
Python基于滑动平均思想实现缺失数据填充的方法
Feb 21 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
为什么说Python可以实现所有的算法
Oct 04 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
Django 博客实现简单的全文搜索的示例代码
Feb 17 Python
如何将PySpark导入Python的放实现(2种)
Apr 26 Python
如何使用PyCharm引入需要使用的包的方法
Sep 22 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
学习使用curl采集curl使用方法
2012/01/11 PHP
php实现的click captcha点击验证码类实例
2014/09/23 PHP
PHP调用全国天气预报数据接口查询天气示例
2019/02/20 PHP
PHP常用函数之base64图片上传功能详解
2019/10/21 PHP
由Javascript实现的页面日历
2011/11/04 Javascript
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
详解基于webpack和vue.js搭建开发环境
2017/04/05 Javascript
一个简易的js图片轮播效果
2017/07/22 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
微信小程序 搜索框组件代码实例
2019/09/06 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
Python 流程控制实例代码
2009/09/25 Python
Python实现的爬虫功能代码
2017/06/24 Python
python 实现一个贴吧图片爬虫的示例
2017/10/12 Python
python绘制简单折线图代码示例
2017/12/19 Python
python实现kNN算法
2017/12/20 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
将python安装信息加入注册表的示例
2019/11/20 Python
Python 基于wxpy库实现微信添加好友功能(简洁)
2019/11/29 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
Python configparser模块应用过程解析
2020/08/14 Python
Python 操作 MySQL数据库
2020/09/18 Python
python 如何设置守护进程
2020/10/29 Python
澳大利亚购买最佳炊具品牌网站:Cookware Brands
2019/02/16 全球购物
大学生最常用的自我评价
2013/12/07 职场文书
《都江堰》教学反思
2014/02/07 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
工伤死亡理赔协议书
2014/10/20 职场文书
同乡会致辞
2015/07/30 职场文书