今天在使用python编写数据处理的时候,碰到数据中带有转义字符的时候,插入数据错误(数据是通过format拼接的,因此从数据库读取的字符串中的转移字符不能处理)
后来查阅资料,MysqlDB中的execute 可以将数据参数绑定到sql参数列表中(其实之前封装好的mysqlor.py中有该接口实现,只是从来没用过。。。今天才发现该接口的用处)
具体方法如下
1 2 3
| params = [1, 2, 3] insert_sql = 'INSERT INTO {tb} VALUES(%s, %s, %s)'.format(tb=table_name) mysql_execute(cur, insert_sql, params)
|
其中 mysql_execute 函数实现如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| def mysql_execute(cursor, sql, param=None, debug=False): u''' 执行 SQL 语句 ''' if cursor: try: if param in [None, "", '']: return cursor.execute(sql) else: if isinstance(param, (list, tuple)): param = param if debug: print "cursor.execute(sql, param) parameter, sql: {s}, param: {p}".format(s=sql, p=param) return cursor.execute(sql, param) except IndexError: if debug: print "cursor.execute(sql, param) error, sql: {s}, param: {p}".format(s=sql, p=param) return None else: if debug: print "mysql_execute parameter cursor is error." return None
|