黑盒测试 发表于 2017-10-19 16:03:22

python如何处理多条不同的SQL语句

python如何处理多条不同的SQL语句呢?以下2条select * from user_info;
SELECT * FROM sms_verifycode WHERE mobile='18100000000' order by id desc

def sql():
        db=pymysql.connect(host="test.xxx.cn",user="xxx",password="6trdHSfTxxx",db="xxxx",port=330x)
        cursor=db.cursor()
        sql="SELECT * FROM sms_verifycode WHERE mobile='18100000000' order by id desc"
        cursor.execute(sql)
        results=cursor.fetchall()
        #results1=cursor.fetchone()
        '''
        for row in results:
                code = row

        return code
        '''
        print(results)
sql()



神仙也考试 发表于 2017-10-19 16:22:28

个人思路:
1、函数1 定义链接数据库
2、函数2 定义查询条件1
3、函数3 定义查询条件2
4、利用循环模式,循环函数2和函数3

黑盒测试 发表于 2017-10-19 16:57:16

神仙也考试 发表于 2017-10-19 16:22
个人思路:
1、函数1 定义链接数据库
2、函数2 定义查询条件1


还有没有简便的方法了
感觉应该有处理多条sql的方法

神仙也考试 发表于 2017-10-19 16:59:04

黑盒测试 发表于 2017-10-19 16:57
还有没有简便的方法了
感觉应该有处理多条sql的方法

你写个储存过程(存储过程中包括有处理多条SQL的语句),然后在Python中调用这个存储过程!

testuser023 发表于 2017-10-19 17:14:52

百度搜:python批量SQL处理

黑盒测试 发表于 2017-10-19 17:25:00

神仙也考试 发表于 2017-10-19 16:59
你写个储存过程(存储过程中包括有处理多条SQL的语句),然后在Python中调用这个存储过程!

我目前里面直接放了2个SQL分号隔开,只执行了第一个SQL,没有执行SQL2

sql="SELECT * FROM sms_verifycode WHERE mobile='18100000000' order by id desc;
SELECT * FROM sms_verifycode WHERE mobile='18110000000' order by id desc;"
        cursor.execute(sql)
        results=cursor.fetchall()

黑盒测试 发表于 2017-10-19 17:35:01

testuser023 发表于 2017-10-19 17:14
百度搜:python批量SQL处理

嗯 没找到合适的

puchonghui 发表于 2017-10-19 20:52:52

能否同时执行多条sql主要需要db支持,和你用啥平台关系不大。比如sqlserver支持(所以sqlserver很容易被注入)

问题是,你现在要执行两句select,得到的肯定是两个resultset,总得用两个对象来分别处理,放一起执行有什么意义么。。。

黑盒测试 发表于 2017-10-20 09:15:53

puchonghui 发表于 2017-10-19 20:52
能否同时执行多条sql主要需要db支持,和你用啥平台关系不大。比如sqlserver支持(所以sqlserver很容易被 ...

测试一个接口,需要查询数据可能多次且SQL不一样,所以可能会存在多个SQL去查,我想放一起去查,所以……

黑盒测试 发表于 2017-10-20 10:23:19

我知道了貌似不能处理2条不同类别的SQL
1、只能处理同类型、多SQL查询
2、不同类多sql只能通过,合并为同一sql方法
3、不同类多sql只能通过,多次调用sql查询方法
页: [1]
查看完整版本: python如何处理多条不同的SQL语句