解决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每隔N秒运行指定函数的方法
Mar 16 Python
Python实现给文件添加内容及得到文件信息的方法
May 28 Python
python 网络编程常用代码段
Aug 28 Python
Python多进程multiprocessing用法实例分析
Aug 18 Python
PyQt5 QSerialPort子线程操作的实现
Apr 21 Python
Python使用itertools模块实现排列组合功能示例
Jul 02 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
Python实现查找最小的k个数示例【两种解法】
Jan 08 Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 Python
Django框架模型简单介绍与使用分析
Jul 18 Python
Python API自动化框架总结
Nov 12 Python
用Python实现一个打字速度测试工具来测试你的手速
May 28 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
德生PL330的评价与改造
2021/03/02 无线电
生成静态页面的php函数,php爱好者站推荐
2007/03/19 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
PHP函数实现分页含文本分页和数字分页
2014/10/23 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
表单元素事件 (Form Element Events)
2009/07/17 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
jquery 提交值不为空的元素示例代码
2013/05/10 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
vue.js树形组件之删除双击增加分支实例代码
2017/02/28 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
Python中获取网页状态码的两个方法
2014/11/03 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
更新升级python和pip版本后不生效的问题解决
2020/04/17 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
Pycharm调试程序技巧小结
2020/08/08 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
一级方程式赛车官方网上商店:F1 Store(支持中文)
2018/01/12 全球购物
销售类个人求职信范文
2013/09/25 职场文书
优秀驾驶员先进事迹材料
2014/05/04 职场文书
学校清明节活动总结
2014/07/04 职场文书
就业协议书样本
2014/08/20 职场文书
2014年安全员工作总结
2014/11/13 职场文书
幼儿园大班毕业评语
2014/12/31 职场文书
学习与创新自我评价
2015/03/09 职场文书
房地产项目合作意向书
2015/05/08 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
Python标准库pathlib操作目录和文件
2021/11/20 Python