python3 使用pymysql VS python2.7 使用 MySQLdb
import pymysql
conn = pymysql.connect( #Connect() 方法用于创建数据库的连接,里面可以指定参数:用户名,密码,主机等信息
host = \'localhost\', #这只是连接到了数据库,要想操作数据库需要创建游标
port = 3306,
user = \'root\',
password = \'\',
db = \'samp_db\',
)
cur = conn.cursor() #通过获取到的数据库连接conn下的cursor()方法来创建游标
sqli = \'insert into projectorlamps values(%s,%s,%s)\'
cur.executemany(sqli,[ #executemany()方法可以一次插入多条值,执行单挑sql语句,但是重复执行参数列表里的参数,返回值为受影响的行数
(15,\'gg\',45),
(12,\'fg\',18),
(13,\'ty\',33),
(14,\'uy\',20),
])
aa = cur.execute(\'select * from projectorlamps\') #通过游标cur 操作execute()方法可以写入纯sql语句。通过execute()方法中写如sql语句来对数据进行操作
print (aa)
info = cur.fetchmany(aa)
for ii in info:
print (ii)
#fetchone()方法可以帮助我们获得表中的数据,可是每次执行cur.fetchone() 获得的数据都不一样,
# 换句话说我没执行一次,游标会从表中的第一条数据移动到下一条数据的位置,
# 所以,我再次执行的时候得到的是第二条数据。
#fetchmany()方法可以获得多条数据,但需要指定数据的条数,通过一个for循环就可以把多条数据打印出啦
conn.commit() #conn.commit()方法在提交事物,在向数据库插入一条数据时必须要有这个方法,否则数据不会被真正的插入
cur.close() #关闭游标
conn.close() #关闭数据库连接
执行结果:
13 (1, \'alan\', None) (2, \'GF\', None) (3, \'kobe\', None) (4, \'??\', None) (5, \'gg\', 45) (6, \'asd\', None) (7, \'ddd\', None) (8, \'gg\', 45) (11, \'gg\', 45) (12, \'fg\', 18) (13, \'ty\', 33) (14, \'uy\', 20) (15, \'gg\', 45)