1. 程式人生 > >python-mysql連線查詢學習筆記

python-mysql連線查詢學習筆記

1、資料庫資訊最好以字典格式放在public下的Config檔案下,方便呼叫

conn = pymysql.connect(**Config.sql_conn_dict)
cur = conn.cursor()

2、sql引數可引數化

param = (a,b)
sql ="select * from t_person_member WHERE ASSOCATION_ID=%s AND REAL_NAME LIKE %s"
cur.execute(sql,param)

3、列印一條查詢資料

print(cur.fetchone())

4、列印所有查詢資料

print(cur.fetchall())

5、列印多條資料

print(cur.fetchmany(2))

6、關閉遊標

cur.close()

7、關閉資料庫連線

conn.close()

8、移動遊標到相對位置(正數表示當前位置往下移,負數表示當前位置往下移)

cur.scroll(2,mode="relative")

9、移動遊標到絕對位置

cur.scroll(2,mode="absolute")

10、修改資料庫時,需要提交才能有效,如果有多次修改資料庫,為防止某次修改失敗,資料需要回滾

try:

    cur.excute(sql1)

    cur.excute(sql2)

    conn.commit() #一系列操作最後進行事務的提交

    print('','True')

except Exception as e :

    conn.rollback()

    print(e,'False')

遇到的問題:

1、查詢時報1054錯誤

sql = "select * from t_person_member where REAL_NAME= %s" %REAL_NAME
cur.execute(sql)
錯誤資訊:pymysql.err.InternalError: (1054, "Unknown column '芒果007' in 'where clause'")

解決辦法:在%s加上'',原文連結https://blog.csdn.net/oguro/article/details/53381555
sql
= "select * from t_person_member where REAL_NAME= '%s'" %REAL_NAME

2、配置資料庫時,未輸入charset='utf8',導致報

UnicodeEncodeError:'latin-1' codec can't encode characters in position 0-1: ordinal not in range(256)

解決辦法:新增上該語句,原文連結https://www.cnblogs.com/Skrillex/p/7093488.html