python下連線mysql相容

2021-09-27 08:28:45 字數 3519 閱讀 1235

# 匯入pymysql模組

import pymysql

"""# 新增下面兩句,那麼3可以向下相容2

pymysql.install_as_mysqldb()

import mysqldb

# 建立乙個連線物件,再使用建立游標

con = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='1234', db='mysql')

cursor = con.cursor()

"""class datamysql(object):

# 定義要執行的sql語句

"""1 建立表一般不用原生sql

2 對資料庫執行查詢操作

3 對資料庫增加和修改資料

4 對資料庫刪除操作

"""def __init__(self, ip=none, user=none, password=none, database=none):

self.conn = pymysql.connect(host=ip, user=user, password=password, database=database, charset="utf8")

self.cursor = self.conn.cursor()

def change_data_mysql(self, sql, parameter, get=none, data=none):

"""修改資料,增,修改,刪除可共用方法

:param cursor:

:param sql:

:return:

"""result = ''

try:

if data:

self.cursor.executemany(sql, data) # 使用executemany做批量處理

else:

self.cursor.execute(sql, parameter)

if get:

result = self.cursor.fetchall()

else:

self.conn.commit() # 提交修改資料

last_id = self.cursor.lastrowid # 變動資料的id

except exception as e:

self.conn.rollback()

print(e)

return result

def get_data_from_mysql(self, sql, parameter):

"""從資料庫檢視資料

:return:

"""try:

ret = self.cursor.execute(sql, parameter) # 返回受影響行數

if ret:

result = self.cursor.fetchall() # fetchall/fetchone 取資料

else:

result = '沒有獲取到資料'

self.conn.commit() # 提交修改資料

except exception as e:

result = e

return result

def insert_data_mysql(self, sql, parameter):

"""向資料庫插入資料 # sql = "insert into tb_heros (hname,hgender,hcomment,is_delete,hbook_id) values(%s,%s,%s,%s,%s);"

# data = ((hname,hgender,hcomment,is_delete,hbook_id),(hname,hgender,hcomment,is_delete,hbook_id))

cursor.executemany(sql, data) # 使用executemany做批量處理

:param cursor:

:return:

"""try:

self.cursor.execute(sql, parameter)

# cursor.executemany(sql, 'data') # 使用executemany做批量處理

self.conn.commit() # 插入資料

last_id = self.cursor.lastrowid # 插入的這條資料的id

print(last_id)

except exception as e:

self.conn.rollback()

print(e)

def delete_data_mysql(self, sql, parameter):

"""刪除資料

:param cursor:

:param sql:

:return:

"""try:

self.cursor.execute(sql, parameter)

self.conn.commit() # 提交修改資料

except exception as e:

self.conn.rollback()

print(e)

def update_data_mysql(self, sql, parameter):

"""更新資料sql="update tb_heros set is_delete=%s where id=%s;" % (1,25)

:param cursor:

:param sql:

:return:

"""try:

self.cursor.execute(sql, parameter)

self.conn.commit() # 提交修改資料

except exception as e:

self.conn.rollback()

print(e)

obj_mysql = datamysql(ip="127.0.0.1", user="root", password="itcast", database="django_demo")

sql = "select * from tb_heros where hname= %s and is_delete=%s;"

parameter = ['郭靖', 0]

# sql = "select * from tb_heros where hname= %s and is_delete=%s;"

# sql="delete from tb_heros where id=%s;"

# parameter = [24]

result = obj_mysql.get_data_from_mysql(sql, parameter=parameter)

result2 = obj_mysql.change_data_mysql(sql, parameter=parameter, get=true, data=none)

print(result)

print(result2)

mysql下開始遠端連線

mysql開始遠端連線賬號,有兩步需要注意的 1 確定伺服器上的防火牆沒有阻止 3306 埠 2 增加允許遠端連線 mysql 使用者並授權。具體參看另外一篇文章,linux下防火牆埠號的設定。telnet 192.168.1.111 3306 檢查mysql配置 如果開啟了防火牆,telnet還是...

Linux下MySQL遠端連線

linux下的mysql遠端連線設定 linux版本 centos6.5版本 mysql版本 5.5 因為mysql在剛剛安裝完成之後,預設不支援遠端連線,所以需要授權!授權法 grant all privileges on to 使用者名稱 identified by 登入密碼 with gran...

linux下連線mysql介面

1 需要什麼標頭檔案?include mysql inte ce s include file 2 需要什麼庫函式 usr lib mysql 3 怎麼連線到乙個已經存在的mysql資料庫?可以用mysql real connect來連線資料庫,用完後記得要用mysql close斷開這個連線.my...