python mysql中in参数化说明
作者:songbaiyiran 发布时间:2024-01-13 08:38:02
第一种:拼接字符串,可以解决问题,但是为了避免sql注入,不建议这样写
还是看看第二种:使用.format()函数,很多时候我都是使用这个函数来对sql参数化的
举个例子:
select * from XX where id in (1,2,3)
参数化in里面的值:
select * from XX where id in ({}).format('1,2,3')
你可以打印下看看,和你原来的sql是一模一样的
补充知识:python与mysql交互/读取本地配置文件/交互报错
如果自己写mysql连接要读取本地配置文件,需要注意:
在配置文件config.ini中写:
[sql]
ip = xxx
port = xxx
table = xxx
uname = xxx
passwd = xxx
如:test.py文件
# 首先导入
import pymysql
# 这是获取配置文件的内容
host = conf.get('sql', 'ip')
port = conf.get('sql', 'port')
database = conf.get('sql', 'table'),
user = conf.get('sql', 'uname')
password = conf.get('sql', 'passwd')
# 建立mysql数据库连接
conn = pymysql.connect(host=host, port=port, db=database, user=user, password=password, charset='utf8') # 这里注意有可能报错,后面会说
sql = 'xxx' # sql语句
cs1 = conn.cursor() # 创建执行对象
count = cs1.execute(sql) # 执行sql语句,返回值是数据库中影响的行数,并赋值给count
conn.commit() # 提交数据库的变更
cs1.close() # 关闭执行对象
conn.close() # 关闭数据库连接对象
报错:
can only concatenate tuple (not "bytes") to tuple
这是因为在配置文件读进来的某个结果是个数组,打印看一下就知道了
但是在上篇python读取配置文件中,试过第一个[global]中读取的没有出现数组形式,这个是为什么我也不知道了,欢迎大家留言共同交流
[Errno 11004] getaddrinfo failed 和下面这个
django操作mysql时django.db.utils.OperationalError: (2003, "Can't connect to MySQL server")错误:
如果是在引用本地配置文件时报错,这个报错也很有可能是读取配置文件时的问题
可以尝试这样解决:
1.自己本地用工具也好,命令也好尝试连接一下,如果不行,那就可能是网络或者权限问题
2.如果上面可以,直接写一个独立的python文件,不去读取本地文件,将信息直接写在py文件中,运行结果可以,就是配置文件读取的问题
3.然后尝试读取,并打印读取结果,就能发现问题了
来源:https://blog.csdn.net/songbaiyiran/article/details/78328385
猜你喜欢
- 参考资料:正则表达式语法–菜鸟教程Java正则表达式实现简单批量替换举例:将and 批量替换为&&Python实现impor
- !important;严格来说,!important;应该不能算作是一种hack技术,被应用了!important;的属性将在IE中无效,对
- Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据
- UDP 客户端一个使用UDP协议的客户端示例代码,用于实现连续对话。请注意,UDP是无连接协议,因此在实现连续对话时需要特别小心。以下是示例
- 什么是事务?事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。数据库事务通常包含了一个序列的对数据库的读/写操作
- Stream Grpc在我们单次投递的数据量很大的时候,比如传输一个二进制文件的时候,数据包过大,会造成瞬时传输压力。或者接收方接收到数据后
- tuple函数功能和list功能很相似,以序列为参数并把它转换为元组>>> tuple([1,2,3])(1, 2, 3)
- 前言这段时间刚刚学习了一段时间的Python,加上自己是做iOS开发的,就想着用Python来做一个自动化打包,可以自动完成打包,上传到蒲公
- 描述: 日志按日期、大小回滚代码:# -*- coding: utf-8 -*-import osimport logging.handle
- 本文实例讲述了php中$_GET与$_POST过滤sql注入的方法,分享给大家供大家参考。具体分析如下:此函数只能过滤一些敏感的sql命令了
- 本文实例讲述了python计算时间差的方法。分享给大家供大家参考。具体分析如下:1、问题:给定你两个日期,如何计算这两个日期之间间隔几天,几
- 为了组织search线的设计师交流会,特地去准备了一些资料。《SERP 2010》是其中一个,但是由于时间关系没有进行讨论。原著是英文报告,
- 前言最近在做一个人脸识别的项目,需要用数据库保存学生信息与前段交互。MySQL的优点1、mysql性能卓越,服务稳定,很少出现异常宕机。2、
- 1.reshapereshape是重塑,常用的三种写法如下:numpy.arange(n).reshape(a, b) &nb
- 想买mate40,但总是抢不到,所以想试着能不能写个脚本代码。第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作
- 一、文件的打开和创建>>> f = open('/tmp/test.txt')>>> f
- 为了访问数据库,就要提供数据库连接类,在C#中,是通过Connection类来实现的四种类型的连接方式SQLConnectionADOCon
- 本文实例为大家分享了Python Web框架Tornado运行和部署的详细内容,供大家参考,具体内容如下一、运行和部署因为Tornado内置
- 程序调用远端服务,为了确保可用性最好在使用前进行健康检测,将异常的服务排除。#!/usr/bin/perl#use strict;use I
- 当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制 问题的解决方法如下:第一:ACC