
conn本来 就已经被你定义成了 函数, connping()当然不存在了。而且你要的数据库连接c,还被手动关闭了。我觉得有两点
1 按照你这个脚本的情况,你用一次,就新建一个数据库连接问题应该不大。
2 要保持使用一个连接的话。把c作全局变量 c=MySQLdbconnect(user="root",passwd="12345",host="localhost",db="yingtest")
使用的时候,直接用c但是不要close,当然要先判断这个连接是否已经断开了,如是再重新连一次。
或者把连接放到一个连接池里面,用的时候直接去连接池里面取。连接池可以看看 DBUtils模块
你说的connping() 看看是不是在c里面,c=MySQLdbconnect(user="root",passwd="12345",host="localhost",db="yingtest")就是这个对象里面,看看有没有判断连接是否断开的方法。 因为没用过 MySQLdb模块。
MySQLdbconnect是python 连接MySQL数据库的方法,在Python中 import MySQLdb即可使用,至于connect中的参数很简单:
host:MySQL服务器名
user:数据库使用者
password:用户登录密码
db: *** 作的数据库名
charset:使用的字符集(一般是gb2312)
cursor = dbcursor() 其实就是用来获得python执行Mysql命令的方法,也就是
我们所说的 *** 作游标
下面cursorexecute则是真正执行MySQL语句,即查询TABLE_PARAMS表的数据。
至于fetchall()则是接收全部的返回结果行 row就是在python中定义的一个变量,用来接收返回结果行的每行数据。同样后面的r也是一个变量,用来接收row中的每个字符,如果写成C的形式就更好理解了
for(string row = ''; row<= cursorfetchall(): row++)
for(char r = ''; r<= row; r++)
printf("%c", r);
#-- coding: utf-8 --
import MySQLdb, datetime, time
#code数字含义
code_mean = {10:"开始下载(10)",
11:"下载完成(11)",
12:"安装界面(12)",
13:"安装成功(13)",
14:"启动游戏(14)",
16:"更新开始(16)"}
#Networktype数字含义
network_type_mean = {1:"3G 网络",
2:"2G 网络",
3:"WIFI网络"}
#当前测试人员拥有手机
phonelist = {1:"0049990", 2:"8689430", 3:"3558680"}
#当前系统时间
nowtime = (datetimedatetimefromtimestamp(timetime())strftime('%Y-%m-%d %H:%M:%S'))
print "当前时间:" + nowtime
today = str(nowtime)split()[0]
#去除日期
HMS = nowtimesplit()[1]
print "目前测试人员拥有的手机如下:"
print "HTC :1"
print "HTC :2"
print "HUAWEI :3"
phont_imei = raw_input("请选择你要查询的手机,输入上列手机对应的数字即可:")
time_start = raw_input("请输入需要查询的起始时间(格式如后:" + HMS + ",默认日期为今天): ")
imei = phonelist[int(phont_imei)]#-- coding: utf-8 --
import MySQLdb, datetime, time
#code数字含义
code_mean = {10:"开始下载(10)",
11:"下载完成(11)",
12:"安装界面(12)",
13:"安装成功(13)",
14:"启动游戏(14)",
16:"更新开始(16)"}
#Networktype数字含义
network_type_mean = {1:"3G 网络",
2:"2G 网络",
3:"WIFI网络"}
#当前测试人员拥有手机
phonelist = {1:"0049990", 2:"8689430", 3:"3558680"}
#当前系统时间
nowtime = (datetimedatetimefromtimestamp(timetime())strftime('%Y-%m-%d %H:%M:%S'))
print "当前时间:" + nowtime
today = str(nowtime)split()[0]
#去除日期
HMS = nowtimesplit()[1]
print "目前测试人员拥有的手机如下:"
print "HTC :1"
print "HTC :2"
print "HUAWEI :3"
phont_imei = raw_input("请选择你要查询的手机,输入上列手机对应的数字即可:")
time_start = raw_input("请输入需要查询的起始时间(格式如后:" + HMS + ",默认日期为今天): ")
imei = phonelist[int(phont_imei)]
具体步骤:
序号 描述
1 去github上下载pymysql的安装包pymysql
2 解压到某个盘符下
3 打开cmd窗口(win环境下),进入pymysql的根目录下执行命令,python setuppy install
4 在程序里,导入pymysql
5 开始连接数据库
数据库 *** 作的API文档连接:
1、python安装目录设定为d:/python34
2、pymysql安装方法为:解压下载的文件,在cmd中运行: python setuppy install。
检验安装安装是否成功的方法:import pymysql 。 如果不报错 说明安装成功。
3、mysql安装目录为D:/phpStudy/MySQL。为避免更多配置问题,可在启动phpstudy后,将其设为系统服务
4、基本 *** 作:
(1)导入pymysql: import pymysql
(2)连接数据库:
conn=pymysqlconnect(host='localhost',user='root',passwd='root',db='ere',charset='utf8')
务必注意各等号前面的内容!charset参数可避免中文乱码
(3)获取 *** 作游标:cur=conncursor()
(4)执行sql语句,插入记录:sta=curexecute("insert 语句") 执行成功后sta值为1。更新、删除语句与此类似。
(5)执行sql语句,查询记录:curexecute("select语句") 执行成功后cur变量中保存了查询结果记录集,然后再用循环打印结果:
for each in cur:
print(each[1]decode('utf-8')) # each[1] 表示当前游标所在行的的第2列值,如果是中文则需要处理编码
具体步骤: 序号 描述 1 去github上下载pymysql的安装包pymysql 2 解压到某个盘符下 3 打开cmd窗口(win环境下),进入pymysql的根目录下执行命令,python setuppy install 4 在程序里,导入pymysql 5 开始连接数据库 数据库 *** 作的API文档连接:
以上就是关于用python编写与mysql数据库连接并实现断线重连的问题全部的内容,包括:用python编写与mysql数据库连接并实现断线重连的问题、Python数据库连接以及游标关闭问题、python连接数据库查询判断是否有记录等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)