# pip3 install pymysql
import pymysql
client=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db5',
charset='utf8'
)
cursor=client.cursor()
sql='insert into t1 values(1,"egon"); '
try:
res=cursor.execute(sql)
# res=cursor.execute(sql)
# res=cursor.execute(sql)
# res=cursor.execute(sql)
print(res)
client.commit()
except Exception:
client.rollback()
cursor.close()
client.close()
# 基于pymysql模块的增删改
# pip3 install pymysql
import pymysql
client=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db5',
charset='utf8'
)
cursor=client.cursor()
# 增
# userinfo=[
# (3,"alex"),
# (4,"lxx"),
# (5,"xxx")
# ]
#
# for user in userinfo:
# sql='insert into t1 values(%s,"%s"); '%(user[0],user[1])
# print(sql)
# cursor.execute(sql)
# 增简便方法
# userinfo=[
# (3,"alex"),
# (4,"lxx"),
# (5,"xxx")
# ]
# sql='insert into t1 values(%s,%s);'
# cursor.executemany(sql,userinfo)
# 删
# cursor.execute('delete from t1 where id =3;')
# 改
# sql='alter table t1 add age int; '
sql='alter table t1 modify name varchar(20); '
cursor.execute(sql)
client.commit()
cursor.close()
client.close()
# 基于mysql模块的查询
import pymysql
client=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db5',
charset='utf8'
)
cursor=client.cursor()
inp_user=input('输入账号:').strip()
inp_pwd=input('输入密码:').strip()
# sql='select id from user where name="%s" and pwd=password("%s");'%(inp_user,inp_pwd)
sql='select id from user where name="%s" and pwd="%s";'%(inp_user,inp_pwd)
print(sql)
rows=cursor.execute(sql) #rows行数 如果有证明存在
if rows:
print('\033[45m登录成功\033[0m')
else:
print('\033[46m用户或密码错误\033[0m')
cursor.execute(sql)
client.commit()
cursor.close()
client.close()
# 输入:egon" -- xxxxx
# xxx" or 1=1 -- hellosb 可以登录
# 解决sql 注入问题
import pymysql
client=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db5',
charset='utf8'
)
cursor=client.cursor()
#查询
inp_user=input('输入账号名: ').strip()
inp_pwd=input('输入密码: ').strip()
sql='select id from user where name = %s and pwd = %s;'
rows=cursor.execute(sql,(inp_user,inp_pwd)) #不进行字符串拼接,放在execute执行
if rows:
print('\033[45m登陆成功\033[0m')
else:
print('\033[46m用户名或密码错误\033[0m')
cursor.close()
client.close()
# 提交查询语句并且拿到查询结果
import pymysql
client=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='egon123',
database='db6',
charset='utf8'
)
cursor=client.cursor(pymysql.cursors.DictCursor)
#查询
sql='select * from user where id > 3'
rows=cursor.execute(sql)
# print(rows)
# print(cursor.fetchall())
# print(cursor.fetchall())
# print(cursor.fetchone())
# print(cursor.fetchone())
# print(cursor.fetchone())
# print(cursor.fetchmany(2))
# print(cursor.fetchone())
# print(cursor.fetchall())
# # cursor.scroll(0,mode='absolute') # 绝对位置移动
# # cursor.scroll(1,mode='absolute') # 绝对位置移动
# print(cursor.fetchall())
# print(cursor.fetchone())
# cursor.scroll(2,mode='relative') # 相对当前位置移动
# print(cursor.fetchone())
cursor.close()
client.close()
# 在Python3中调用存储过程:
import pymysql
client=pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='',
database='db5',
charset='utf8'
)
cursor=client.cursor(pymysql.cursors.DictCursor)
res=cursor.callproc('p4',(3,111)) # set @_p4_0 = 3 ;set @_p4_1 = 111
print(cursor.fetchall())
cursor.execute('select @_p4_1;')
print(cursor.fetchone())
cursor.close()
client.close()