解决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实现代理服务功能实例
Nov 15 Python
Python获取远程文件大小的函数代码分享
May 13 Python
初步探究Python程序的执行原理
Apr 11 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
Nov 30 Python
浅谈python标准库--functools.partial
Mar 13 Python
pandas的连接函数concat()函数的具体使用方法
Jul 09 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
Python实现Canny及Hough算法代码实例解析
Aug 06 Python
Python基于callable函数检测对象是否可被调用
Oct 16 Python
Python实现区域填充的示例代码
Feb 03 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
深入浅析python3 依赖倒置原则(示例代码)
Jul 09 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连接MongoDB示例代码
2012/09/06 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
offsetParent 算法分析
2010/04/05 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
JS判断日期格式是否合法的简单实例
2016/07/11 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
微信小程序仿知乎实现评论留言功能
2018/11/28 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
JS阻止事件冒泡的方法详解
2019/08/26 Javascript
Python中的闭包总结
2014/09/18 Python
Python实现在Linux系统下更改当前进程运行用户
2015/02/04 Python
Python利用flask sqlalchemy实现分页效果
2020/08/02 Python
python爬取各类文档方法归类汇总
2018/03/22 Python
python实现维吉尼亚加密法
2019/03/20 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
python利用os模块编写文件复制功能——copy()函数用法
2020/07/13 Python
特罗佩亚包官方网站:Tropea
2017/01/03 全球购物
英国网上电器商店:Electricshop
2020/03/15 全球购物
开学典礼感言
2014/02/16 职场文书
工厂标语大全
2014/10/06 职场文书
2014年老干部工作总结
2014/11/21 职场文书
人事行政助理岗位职责
2015/04/11 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
恶魔之树最顶端的三颗果实 震震果实上榜,第一可以制造岩浆
2022/03/18 日漫