最近,我有一个项目需要将变量值保存到数据库中。
我想编写这样的代码:
如果我想输入 username="Jonh", gender="Male", age=23, password="123456789", id="11111111"
代码如下所示:
# !/usr/bin/python
# -*- coding: UTF-8 -*-
import MySQLdb
import sys
db = MySQLdb.connect("140.120.31.124","usr1","606","testdb",port=3306 )
cursor = db.cursor()
urn="Jonh"
gdr="male"
agex="23"
psd="123456789"
idx="11111111"
sql = """INSERT INTO table1(username,gender,age,password,id) VALUES(%s,%s,%s,%s,%s)""" %(urn,gdr,agex,psd,idx)
# sql="""INSERT INTO table1(username,gender,age,password,id) VALUES("Jonh","male","23","123456789","11111111")"""
try:
cursor.execute(sql)
db.commit()
except Exception as inst:
db.rollback()
print inst
db.close()
我设置的数据库结构是:
username varchar(50) utf8_unicode_ci
gender varchar(50) utf8_unicode_ci
age int(2)
password varchar(20) utf8_unicode_ci
id varchar(8) utf8_unicode_ci
但是,它总是显示错误--> (1054, "Unknown column 'Jonh' in 'field list'")
有人能帮我解决这个问题吗?谢谢。
另外,我指的代码是https://www.packtpub.com/mapt/book/big_data_and_business_intelligence/9781849510189/3/ch03lvl1sec24/using-user-defined-variables
1条答案
按热度按时间p3rjfoxz1#
不能使用字符串替换。使用参数。
那本书似乎在推荐不安全的做法。你应该立即停止阅读。