在SQL语句中如果定义字符串,则字符串必须使用“\’”就是单引号进行声明,但是如果现在所操作的数据库本身含有“\’”单引号,就会造成语法错误,此时的数据也不能成功保存到数据库中。为了解决这类问题,在pymysql中支持对占位符的处理,开发者需要在SQL中使用“%”定义占位符,在使用excute()方法执行时对占位符的数据进行填充即可。
比如数据库表中的字段 mr\’yootk这个本身含有“\’”单引号,所以执行时语法错误
#使用占位符方式添加数据 #coding utf-8 import pymysql,traceback SQL = \"insert into user (name,age,birthday,salary,note)\"\\ \"values (%s,%s,%s,%s,%s)\" def main(): try: name = \"mr\'Yootk\" age = 18 birthday = \'2013-09-26\' salary =9600.23 note = \"www.wangyi.com\" conn = pymysql.connect( host=\'10.139.7.39\', port=3306, user=\'root\', passwd=\'Bccdr@123456\', database=\'yootk\', charset=\'utf8\') cmd = conn.cursor() cmd.execute(query=SQL,args=[name,age,birthday,salary,note]) conn.commit() print(\"更新影响的数据行数: %s\" % cmd.rowcount) print(\"最后一次增长ID: %s\" % cmd.lastrowid) except Exception: print(\"处理异常: \" + traceback.format_exc()) finally: conn.close() if __name__ == \"__main__\": main()
© 版权声明
THE END
暂无评论内容