解决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基于select实现的socket服务器
Apr 13 Python
Python登录并获取CSDN博客所有文章列表代码实例
Dec 28 Python
python互斥锁、加锁、同步机制、异步通信知识总结
Feb 11 Python
在Python中关于使用os模块遍历目录的实现方法
Jan 03 Python
实例讲解Python中浮点型的基本内容
Feb 11 Python
总结Python图形用户界面和游戏开发知识点
May 22 Python
python线程信号量semaphore使用解析
Nov 30 Python
解决Tensorflow 使用时cpu编译不支持警告的问题
Feb 03 Python
python画图常规设置方式
Mar 05 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
用Python制作mini翻译器的实现示例
Aug 17 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面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
Javascript在IE和Firefox浏览器常见兼容性问题总结
2016/08/03 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
Nodejs技巧之Exceljs表格操作用法示例
2019/11/06 NodeJs
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
详解JavaScript作用域、作用域链和闭包的用法
2020/09/03 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python兔子毒药问题实例分析
2015/03/05 Python
python实现简单ftp客户端的方法
2015/06/28 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
python实现公司年会抽奖程序
2019/01/22 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
保护环境倡议书范文
2014/05/13 职场文书
党员学习中共十八大报告思想汇报
2014/09/15 职场文书
2014年保密工作总结
2014/11/22 职场文书
组织委员竞选稿
2015/11/21 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
《学会生存》读后感3篇
2019/12/09 职场文书
Python+Tkinter打造签名设计工具
2022/04/01 Python
Go归并排序算法的实现方法
2022/04/06 Golang