# 匯入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...