1.背景
项目需要,用python实现了将字典内容存入本地的mysql数据库。比如说有个字典dic={"a":"b","c":"d"},存入数据库效果图如下:
2.代码
''''' Insert items into database @author: hakuri ''' import MySQLdb def InsertData(TableName,dic): try: conn=MySQLdb.connect(host='localhost',user='root',passwd='****',db='test',port=3306) #链接数据库 cur=conn.cursor() COLstr='' #列的字段 ROWstr='' #行字段 ColumnStyle=' VARCHAR(20)' for key in dic.keys(): COLstr=COLstr+' '+key+ColumnStyle+',' ROWstr=(ROWstr+'"%s"'+',')%(dic[key]) #判断表是否存在,存在执行try,不存在执行except新建表,再insert try: cur.execute("SELECT * FROM %s"%(TableName)) cur.execute("INSERT INTO %s VALUES (%s)"%(TableName,ROWstr[:-1])) except MySQLdb.Error,e: cur.execute("CREATE TABLE %s (%s)"%(TableName,COLstr[:-1])) cur.execute("INSERT INTO %s VALUES (%s)"%(TableName,ROWstr[:-1])) conn.commit() cur.close() conn.close() except MySQLdb.Error,e: print "Mysql Error %d: %s" % (e.args[0], e.args[1]) if __name__=='__main__': dic={"a":"b","c":"d"} InsertData('testtable',dic)
cursor.lastrowid
import MySQLdb # get user input name = raw_input("Please enter a name: ") # connect conn = MySQLdb.connect(host="localhost", user="nobody", passwd="nobody", conn="qestar", unix_socket="/tmp/mysql.sock") # create a cursor cursor = conn.cursor() # execute SQL statement cursor.execute("INSERT INTO test (nama) VALUES (%s)", name) # get ID of last inserted record print "ID of last record is ", int(cursor.lastrowid) #最后插入行的主键ID print "ID of inserted record is ", int(conn.insert_id()) #最新插入行的主键ID,conn.insert_id()一定要在conn.commit()之前,否则会返回0 conn.commit()