解决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警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
零基础写python爬虫之HTTP异常处理
Nov 05 Python
python从网络读取图片并直接进行处理的方法
May 22 Python
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
python实现本地图片转存并重命名的示例代码
Oct 27 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
Python中list的交、并、差集获取方法示例
Aug 01 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
怎么快速自学python
Jun 22 Python
Python中Permission denied的解决方案
Apr 02 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中文件缓存转内存缓存的方法
2011/12/06 PHP
php在线代理转向代码
2012/05/05 PHP
解析PHP汉字转换拼音的类
2013/06/18 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
PHP中的类型约束介绍
2015/05/11 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
PHP分享图片的生成方法
2018/04/25 PHP
ThinkPHP5.0框架验证码功能实现方法【基于第三方扩展包】
2019/03/11 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
点图片上一页下一页翻页效果
2008/07/09 Javascript
js实现权限树的更新权限时的全选全消功能
2009/02/17 Javascript
jquery实现居中弹出层代码
2010/08/25 Javascript
js两行代码按指定格式输出日期时间
2011/10/21 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
Vue微信公众号网页分享的示例代码
2020/05/28 Javascript
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
Python 实现自动完成A4标签排版打印功能
2020/04/09 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
python 牛顿法实现逻辑回归(Logistic Regression)
2020/10/15 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
jQuery treeview树形结构应用
2021/03/24 jQuery
部门年终奖分配方案
2014/05/07 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
乡镇党员干部群众路线对照检查材料思想汇报
2014/09/28 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript