1 #! /usr/bin/env python3 2 # coding = utf-8 3 4 import random 5 import pymysql 6 7 8 # 連接數據庫函數 9 def connDB(data): 10 conn = pymysql.connect(host='localhost',user='root',passwd='#######',db='test',) #數據庫 11 cur = conn.cursor() #游標 12 cur.execute('create database if not exists test;') #執語句行 13 cur.execute('create table if not exists test1(id INT NOT NULL, num VARCHAR(40) );') 14 for i in range(len(data)): 15 cur.execute('insert into test1 (id,num) values("{0}","{1}");'.format(i,data[i])) #{0} {1} 要和sql語句區分 16 cur.close() #關游標 17 conn.commit() 18 conn.close() #關數據庫 19 20 # 產生激活碼 21 def make_number(num,length): 22 lstr = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789' 23 a = [] 24 cnt = 0 25 while cnt < num: 26 a_str = '' 27 for j in range(length): 28 a_str += random.choice(lstr) 29 if a_str not in a: 30 a.append(a_str) 31 cnt +=1 32 return a 33 34 35 if __name__ == "__main__": 36 nums = make_number(100,20) 37 print(nums) 38 connDB(nums)
錯誤處理:
pymysql.err.InternalError: (1054, "Unknown column 'K0F3hNCZUrXIA4wMEk6a' in 'field list'")
{0} {1} 要和sql語句區分,所以在該語句中用雙引號標注,其他格式化字符串(d%,s%等也應用引號區分)
