pymysql 查詢 (fetchone和fetchall方法)


使用fetchone()方法獲取單條記錄
使用fetchall()方法從數據庫表中獲取多個值。

fetchone() - 它獲取查詢結果集的下一行。 結果集是當使用游標對象來查詢表時返回的對象。 fetchall() - 它獲取結果集中的所有行。 如果已經從結果集中提取了一些行,則從結果集中檢索剩余的行。 rowcount - 這是一個只讀屬性,並返回受execute()方法影響的行數。
import pymysql
# 打開數據庫鏈接
db = pymysql.connect("localhost","root","123456","test" )
# 獲取操作游標:使用cursor()方法獲取
cursor = db.cursor()
# 按字典格式返回數據 # cursor = db.cursor(pymysql.cursors.DictCursor)

# 查詢語句 sql = "SELECT * FROM USER \ WHERE INCOME > %d" % (1000) #print (sql)

try:   # 執行sql   cursor.execute(sql)   # 獲取所有結果列表:fetchall()   results = cursor.fetchall()   for row in results:     #print (row)     fname = row[1]     lname = row[2]     age = row[3]     sex = row[4]     income = row[5]     # 打印查看一下結果     print ("name = %s %s,age = %s,sex = %s,income = %s" %(fname, lname, age, sex, income )) except:   import traceback #打印出報錯具體信息   traceback.print_exc()   print ("Error: unable to fetch data") # 關閉數據庫鏈接 db.close()

注意:

什么是 Traceback

Traceback 是 Python  錯誤信息的報告。在其他編程語言中有着不同的叫法包括 stack trace, stack  traceback, backtrac  等名稱, 在 Python  中,術語就是 Traceback

當代碼中出現錯誤,會在輸出的時候打印 Traceback  錯誤信息

 

 

寫成一個函數:

:使用 try...except...

def connMySQL():
  try:
    conn = pymysql.connect("localhost","root","123456","test" )#鏈接數據庫
  except Exception as e:
    return e.args #如果報錯,返回錯誤信息
  else:
    cur=conn.cursor()#建立操作游標
    sql=" SELECT * from USER where income = %s" #要執行的sql
    params=(1,) #用一個參數,賦值給上面的%s

    #------獲取單條數據結果fetchone()
    #cur.execute(sql,params) #執行數據庫sql
    #data=cur.fetchone() #這是獲取單條結果數據
    #print(data)
    #-------獲取多條數據結果fetchall()
    cur.execute(select * from USER...)
    data=cur.fetchall()
    for item in data: #循環的方式去打印結果出來
      print(item)
    #db=[item for item in data] #或者使用列表推導式來打印結果出來
      #print(db)
  finally:
    cur.close() #關閉游標操作
    conn.close() #關閉數據庫鏈接


#調用一下函數方法,執行看下結果
print(connMySQL())

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM