-
链接参数
host='127.0.0.1' #计算机的IP地址
port=3306 #数据库的端口号
user='root' #数据库的用户名
password='root' #用户密码
database='lucky' #要连接数据库名
charset='utf8' #链接数据的编码格式
-
代码示例
import pymysql
1:#查询
conn = pymysql.connect(
host='127.0.0.1', #主机
port=3306, #端口号
user='root',#用户名
password='666', #密码
database='day43', #需要连接的库
charset='utf8'#指定编码
)
cursor = conn.cursor()#获取游标,默认获取的是元祖嵌套形式的数据
sql = "select * from dep;" #sql语句
ret = cursor.execute(sql) #ret 受影响的行数
print(cursor.fetchall()) #取出所有的
print(cursor.fetchmany(3)) #取出多条不写参数默认是取一条
print(cursor.fetchone()) #取出单条
cursor.scroll(3,'absolute') #绝对移动,按照数据最开始位置往下移动3条
cursor.scroll(3,'relative') #相对移动,按照当前光标位置往下移动3条
'''
cursor 获取游标的时候默认获取的是元祖套元祖的数据类型,可以指定使用字段的方式,来获取字典的数据格式
'''
#字典格式的游标
cursor = conn.cursor(pymysql.cursors.DictCursor)
-
pymysql插入数据
#插入
conn = pymysql.connect(
host='127.0.0.1', #主机
port=3306, #端口号
user='root',#用户名
password='666', #密码
database='day43', #需要连接的库
charset='utf8'#指定编码
)
cursor = conn.cursor()#获取游标,默认获取的是元祖嵌套形式的数据
sql = "insert into t1 values (3,'xx3',18);" #sql语句
ret = cursor.execute(sql) #ret 受影响的行数
conn.commit() #增删改操作时,需要进行提交
-
sql注入解决方案
#sql注入:解决方案
cursor.execute(sql,[参数1,参数2...])
import pymysql
conn = pymysql.connect(
host='127.0.0.1',
port=3306,
user='root',
password='666',
database='day43',
charset='utf8',
)
while 1:
username = input('请输入用户名:')
password = input('请输入密码:')
cursor = conn.cursor(pymysql.cursors.DictCursor)
sql = "select * from userinfo where username=%s and password=%s;"
#cursor.execute(sql,[uname,pword]) ,其实它本质也是帮你进行了字符串的替换,只不过它会将uname和pword里面的特殊字符给过滤掉。
ret = cursor.execute(sql,[username,password])
#ret我们说是得到的行数,如果这个行数不为零,说明用户输入的用户名和密码存在,如果为0说名存在
if ret:#如果输入的用户名和密码错误,这个结果为0,如果正确,这个结果为1
print('登录成功')
else:
print('账号或者密码错误,请重新输入!!!')
-
获取插入的最后一条数据的自增ID
import pymysql
conn=pymysql.connect(host='localhost',user='root',password='123',database='egon')
cursor=conn.cursor()
sql='insert into userinfo(name,password) values("xxx","123");'
rows=cursor.execute(sql)
print(cursor.lastrowid) #在插入语句后查看
conn.commit()
cursor.close()
conn.close()
Mysql数据库数据备份和恢复
#使用mysqldump实现数据库的备份
mysqldump -uroot -p -B -d 库名 > f:\数据库备份练习\crm2stru.sql
Enter password: ***
'''
mysqldump也是mysql数据库的一个命令,-u用户名,-p密码 -B指的是在备份数据的时候,备份的数据增加建库的语句和use语句,>号后面指定路径数据备份保存的路径和文件名
'''
#利用mysql命令回复数据
'''
恢复数据首先要把数据库中原来的库删除,然后把备份的数据导入进来,<号表示得就是要导入进来,后面写上备份数据的路径,运行就可以回复数据
'''
mysql -u用户名 -p 密码 库名 < f:\数据库备份练习\crm2stru.sql