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)])

 

posted on 2020-05-02 07:01  焚音留香  阅读(82)  评论(0编辑  收藏  举报