遇到2个问题,希望老师能帮忙解决
来源:3-3 python查询mysql数据库
冰红茶煮蛋
2018-07-10
第一个问题,3.3 .自己按着老师上课的代码 想一步步的运行尝试加深记忆,结果在第一步get_one时 运行后无结果,也无报错,如图
import MySQLdb class Mysqlsearch(object): def __init__(self): self.get_conn() # 获取连接 def get_conn(self): try: self.conn = MySQLdb.connect( host = '127.0.0.1', user = 'root', passwd = "", db = "news", port = 3306, charset = 'utf8' ) except MySQLdb.Error as e: print ("Error: %s" % e) # 关闭连接 def close_conn(self): try: if self.conn: self.conn.close() except MySQLdb.Error as e: print ("Error: %s" % e) # 查询一条数据 def get_one(self): # 准备SQL sql = "SELECT * FROM `news` WHERE `types` = %s ORDER BY `created_at` DESC;" # 找到cursor cursor = self.conn.cursor() # 执行SQL cursor.execute(sql, ('百家', )) # 拿到结果 rest = cursor.fetchone() # 处理数据 print (rest) # 关闭cursor/连接 cursor.close() self.conn.close() def main(): obj = Mysqlsearch() obj.get_conn() if __name__ == "__main__": main()
以上为第一个问题代码,第二个问题则是直接复制了老师的课程代码,结果报这个错误:
import MySQLdb
class MysqlSearch(object):
def __init__(self):
self.get_conn()
def get_conn(self):
try:
self.conn = MySQLdb.connect(
host='127.0.0.1',
user='root',
passwd='',
db='news',
port=3308,
charset='utf8'
)
except MySQLdb.Error as e:
print('Error: %s' % e)
def close_conn(self):
try:
if self.conn:
# 关闭链接
self.conn.close()
except MySQLdb.Error as e:
print('Error: %s' % e)
def get_one(self):
# 准备SQL
sql = 'SELECT * FROM `news` WHERE `types` = %s ORDER BY `created_at` DESC;'
# 找到cursor
cursor = self.conn.cursor()
# 执行SQL
cursor.execute(sql, ('百家', ))
# print(dir(cursor))
# 拿到结果
rest = dict(zip([k[0] for k in cursor.description], cursor.fetchone()))
# 处理数据
# 关闭cursor/链接
cursor.close()
self.close_conn()
return rest
def main():
obj = MysqlSearch()
obj.get_conn()
if __name__ == '__main__':
main()
这是第二个的代码
1回答
-
问题一:你要试着去理解代码,在你的第一份代码46行,应该是 get_one()
问题二:老师的数据库和你装的端口不一样,我用的是3308,你的是3306,注意区别。
012018-07-10
Python操作三大主流数据库-MySQL+MongoDB+Redis
2024 学习 · 376 问题
相似问题