解决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复制文件代码实现
Dec 23 Python
python使用calendar输出指定年份全年日历的方法
Apr 04 Python
Python生成器以及应用实例解析
Feb 08 Python
python爬虫获取新浪新闻教学
Dec 23 Python
Python 移动光标位置的方法
Jan 20 Python
python打开windows应用程序的实例
Jun 28 Python
pandas 时间格式转换的实现
Jul 06 Python
pandas中DataFrame修改index、columns名的方法示例
Aug 02 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
python ssh 执行shell命令的示例
Sep 29 Python
教你怎么用python selenium实现自动化测试
May 27 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 验证码制作(网树注释思想)
2009/07/20 PHP
PHP 加密解密内部算法
2010/04/22 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
服务器迁移php版本不同可能诱发的问题
2015/12/22 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
Gambit vs ForZe BO3 第三场 2.13
2021/03/10 DOTA
javascript hashtable 修正版 下载
2010/12/30 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
js中document.write的那点事
2014/12/12 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
日常收集整理的JavaScript常用函数方法
2015/12/10 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
分享JS数组求和与求最大值的方法
2016/08/11 Javascript
简单谈谈vue的过渡动画(推荐)
2017/10/11 Javascript
如何利用@angular/cli V6.0直接开发PWA应用详解
2018/05/06 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
jQuery实现监听下拉框选中内容发生改变操作示例
2018/07/13 jQuery
React中如何引入Angular组件详解
2018/08/09 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
在Webpack中用url-loader处理图片和字体的问题
2020/04/28 Javascript
nodejs+koa2 实现模仿springMVC框架
2020/10/21 NodeJs
ReactRouter的实现方法
2021/01/25 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
python使用BeautifulSoup分页网页中超链接的方法
2015/04/04 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
全球知名鞋履品牌授权零售商:Journeys
2016/09/17 全球购物
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
医药类个人求职的自我评价
2014/02/12 职场文书
周年庆典主持词
2014/04/02 职场文书
模具设计与制造专业求职信
2014/07/19 职场文书
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers