首页 > 使用pymysql连接数据库,执行时因为插入的变量没有引号,所以被当成column,求点子

使用pymysql连接数据库,执行时因为插入的变量没有引号,所以被当成column,求点子

代码如下:

import pymysql


conn = pymysql.connect(host='127.0.0.1',
            port=3306,
            user='xxx'
            passwd='xxx'
            database=xxx
            unicode=True
            charset='utf8'
            cursorclass=pymysql.cursors.DictCursor)
with conn.cursor() as cursor:
    cursor.execute("INSERT INTO `role`(`role_name`, `role_name_zh`) VALUES (%(role_name)s, %(role_name_zh)s)", dict(role_name="role_name", role_name_zh="测试角色"))

cursor.commit()
...

执行时报错:

"Unknown column 'test_role' in 'field list'"

把插入的变量当成列了,直接写到字符串里,加上引号就好用,但是觉得这种方法太low

...
cursor.execute("INSERT INTO `role` (`role_name`, `role_name_zh`) VALUES ('%(role_name)s', '%(role_name_zh)s')", dict(role_name="role_name", role_name_zh="测试角色"))
...

请教下大家怎么处理这样的情况的?


字符串格式化么:

cursor.execute("INSERT INTO 'role' ('role_name', 'role_name_zh') VALUES ('{0}', '{1}')".format('role_name', '测试角色'))
【热门文章】
【热门文章】