解决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 04 Python
Python新手实现2048小游戏
Mar 31 Python
用Python中的字典来处理索引统计的方法
May 05 Python
windows下Virtualenvwrapper安装教程
Dec 13 Python
Python异常处理操作实例详解
May 10 Python
用Python识别人脸,人种等各种信息
Jul 15 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
Python爬虫实例——scrapy框架爬取拉勾网招聘信息
Jul 14 Python
Python通过zookeeper实现分布式服务代码解析
Jul 22 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 23 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
Feb 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
php5 non-thread-safe和thread-safe这两个版本的区别分析
2010/03/13 PHP
在PHP中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
PHP JS Ip地址及域名格式检测代码
2013/09/27 PHP
Symfony2学习笔记之控制器用法详解
2016/03/17 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
PHP生成推广海报的方法分享
2018/04/22 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
PHP7 其他修改
2021/03/09 PHP
为调试JavaScript添加输出窗口的代码
2010/02/07 Javascript
Javascript 中的 &amp;&amp; 和 || 使用小结
2010/04/25 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
5分钟理解JavaScript中this用法分享
2013/11/09 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
JavaScript保留关键字汇总
2015/12/01 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
javascript self对象使用详解
2016/10/18 Javascript
vue动画打包后失效问题的解决方法
2018/09/18 Javascript
angularjs1.5 组件内用函数向外传值的实例
2018/09/30 Javascript
layui 数据表格 根据值(1=业务,2=机构)显示中文名称示例
2019/10/26 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
Openlayers绘制聚合标注
2020/09/28 Javascript
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
利用 Monkey 命令操作屏幕快速滑动
2016/12/07 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
python+POP3实现批量下载邮件附件
2018/06/19 Python
利用Python正则表达式过滤敏感词的方法
2019/01/21 Python
windows下Python安装、使用教程和Notepad++的使用教程
2019/10/06 Python
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
python删除csv文件的行列
2021/04/06 Python
Python带你从浅入深探究Tuple(基础篇)
2021/05/15 Python
nginx配置之并发频次限制
2022/04/18 Servers
Python开发五子棋小游戏
2022/04/28 Python