1. 程式人生 > >mysql python 交互

mysql python 交互

pass date oot 返回 sta fetch ssa absolute 編碼

一、安裝

sudo apt-get install pymysql

sudo pip3 install pymysql

Connection對象

  • 用於建立與數據庫的連接
  • 創建對象:調用connect()方法
  conn=connect(參數列表)
  • 參數host:連接的mysql主機,如果本機是‘localhost‘
  • 參數port:連接的mysql主機的端口,默認是3306
  • 參數db:數據庫的名稱
  • 參數user:連接的用戶名
  • 參數password:連接的密碼
  • 參數charset:通信采用的編碼方式,默認是‘gb2312‘,要求與數據庫創建時指定的編碼一致,否則中文會亂碼

對象的方法

  • close()關閉連接
  • commit()事務,所以需要提交才會生效
  • rollback()事務,放棄之前的操作
  • cursor()返回Cursor對象,用於執行sql語句並獲得結果

Cursor對象

  • 執行sql語句
  • 創建對象:調用Connection對象的cursor()方法
  cursor1=conn.cursor()

對象的方法

  • close()關閉
  • execute(operation [, parameters ])執行語句,返回受影響的行數
  • fetchone()執行查詢語句時,獲取查詢結果集的第一個行數據,返回一個元組
  • next()執行查詢語句時,獲取當前行的下一行
  • fetchall()執行查詢時,獲取結果集的所有行,一行構成一個元組,再將這些元組裝入一個元組返回
  • scroll(value[,mode])將行指針移動到某個位置
    • mode表示移動的方式
    • mode的默認值為relative,表示基於當前行移動到value,value為正則向下移動,value為負則向上移動
    • mode的值為absolute,表示基於第一條數據的位置,第一條數據的位置為0

對象的屬性

  • rowcount只讀屬性,表示最近一次execute()執行後受影響的行數
  • connection獲得當前連接對象

、python 與mysql 連接代碼

from pymysql import *
try:
    conn=Connection(host="localhost",port=3306,user="root",passwd="mysql",db=python3,charset="utf8")
    cursor1=conn.cursor()
    sql="insert into students(name) values(‘郭小二‘)"
    #sql="update students set name= ‘王小二‘ where id = 9"
    #sql="delete from students shere id=9"
    cursor1.execute(sql)
    conn.commit()
    cursor1.close()
    conn.close()
except Exception :
    print("錯誤")

查詢:

import MySQLdb
try:
    conn=MySQLdb.connect(host=localhost,port=3306,db=test1,user=root,passwd=mysql,charset=utf8)
    cur=conn.cursor()
    cur.execute(select * from students)
    result=cur.fetchall()
    print result
    cur.close()
    conn.close()
except Exception,e:
    print e.message

三、sql語句參數化

防止sql註入

from pymysql import *
try:
    conn=Connection(host="localhost",port=3306,user="root",passwd="mysql",db=python3,charset="utf8")
    cursor1=conn.cursor()
    sname=raw_input("請輸入學生姓名:")
params=[sname]

cursor1.execute("insert into students(sname) values(%s)",params) conn.commit() cursor1.close() conn.close()
except Exception : print("錯誤")

mysql python 交互