pymysql 连接操作 phpMyAdmin

4 篇文章 0 订阅
3 篇文章 0 订阅

一、pymysql

1、pymysql是支持py3.X的mysql连接库

2、安装pymysql:pip install pymysql

3、连接数据库需要服务器host

二、代码

1、连接数据库

def connetSql(databaseName):
    sqlConnect = pymysql.connect(  # 连接数据库服务器
        user="root",
        password="123456",
        host="127.0.0.1",  // IP地址
        database=databaseName,
        charset="utf8"
    )
    conn = sqlConnect.cursor()  # 创建操作游标
    return conn, sqlConnect

2、数据库中清除指定的phone行

if userName.isdigit():
    # 从mobile中清除手机号
    databaseUse = 'passport'
    db = connetSql(databaseUse)
    conn = db[0]
    database = db[1]
    sql_2 = 'delete from mobile where mobile=' + "'" + str(userName) + "'"
    print(sql_2)
    conn.execute(sql_2)
    conn.execute('commit')

    database.close()
    conn.close()

注意,sql语句是select 这类的语句时,可以不用加conn.execute('commit'),但是涉及到修改数据库的操作,如delete、drop、insert时,必需要加语句conn.execute('commit')

三、错误记录

1、IndexError: tuple index out of range

提示该错误出现于执行sql语句时,解决方法是把原来的

select user_id from account_8 where username=test10086

改为:

select user_id from account_8 where username='test10086'  # 筛选值前后加上" ' "

2、invalid literal for int() with base 10: 'd'

此错误出现在判断字符值时,解决方法是改用正则匹配判断:

if re.findall(r"[0-8]", str(useData)):

3、IndexError: tuple index out of range

此错误出现在:

getBack2 = conn2.fetchall()
useId = getBack2[0][0]

原因是没有考虑到返回值不存在的情况,当sql查找的值不存在表中时,报错。解决方法为:
 

getBack2 = conn2.fetchall()
if getBack2:
    useId = getBack2[0][0]

// 当然,之后还需要加else补充句

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值