import pymysql conn_obj = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='111', database='db0507', charset='utf8' # 此处不能写成 utf-8,否则mysql可能不识别 ) # 以上完成了登入客户端连接服务端,并指定了一个库 cursor_obj = conn_obj.cursor(cursor=pymysql.cursors.DictCursor) # 生成了一个执行指令的光标对象,同时声明了显示形式为字典形式 while 1: input_name = input('[input]请输入登录账号:').strip() input_pwd = input('[input]请输入登录密码:').strip() login_cmd = 'select * from users where name = %s and pwd = %s' # 为了防止sql注入带来的安全问题,此处先不拼接指令,占位即可 login_res = cursor_obj.execute(login_cmd, (input_name, input_pwd)) # 把输入的信息交给光标对象按照sql语法处理指令返回结果对象 if not login_res: print('[×]登录失败,请重新登录') # 若账号或密码错误,登录指令则无返回结果 else: print('[√]登录成功') select_cmd = 'select * from users' # 登录成功后编写查询指令 select_res = cursor_obj.execute(select_cmd) # 把查询指令交给光标对象按照sql语法处理指令并返回结果对象 print(cursor_obj.fetchone()) # 从当前位置起查看一条数据,然后指针移动到第二个记录 cursor_obj.scroll(1, 'relative') # 从当前位置起后移一位,即到了第三个记录 print(cursor_obj.fetchall()) # 从当前位置查看取所有剩余记录 cursor_obj.scroll(1, 'absolute') # 从起始位置起后移一位,即到了第二个记录 print(cursor_obj.fetchmany(6)) # 从当前位置起查看6个条数数据,即查看第二到第七条记录,但是该表只有五条记录,所以只会显示五条,不会报错 break
# 1.针对增删改 pymysql需要二次确认才能真正的操作数据 import pymysql conn = pymysql.connect( host = '127.0.0.1', port = 3306, user = 'root', passwd = '123456', db = 'day48', charset = 'utf8', autocommit = True ) cursor = conn.cursor(pymysql.cursors.DictCursor) # 增 sql = 'insert into user(name,password) values(%s,%s)' # rows = cursor.execute(sql,('jackson',123)) rows = cursor.executemany(sql,[('xxx',123),('ooo',123),('yyy',123)]) print(rows) # conn.commit() # 确认 # 修改 # sql = 'update user set name="jasonNB" where id=1' # rows = cursor.execute(sql) # print(rows) # conn.commit() # 确认 # 删除 sql = 'delete from user where id=7' rows = cursor.execute(sql) print(rows) conn.commit() # 确认 # 查 # sql = 'select * from user' # cursor.execute(sql) # print(cursor.fetchall()) """ 增删改查中 删改增它们的操作设计到数据的修改 需要二次确认 """ # 还可以一次性插入N多条数据 rows = cursor.executemany(sql,[('xxx',123),('ooo',123)])