我有一个Web表单,用于获取用户数据并将其放入mysql数据库。我需要修剪前导和尾随空格/空格。我目前正在使用strip()方法,但它只修剪它们的字段,而不是mysql数据库。
我的代码是:
first_name = first_name.strip()
last_name = last_name.strip()
等等等等。它为网页完全剥离它,但在将其输入SQL数据库时则不能。空间仍然存在。如何删除它们?
编辑:
db = MySQLdb.connect("localhost","user","pass","db_name")
cursor = db.cursor()
cursor.execute("Select * FROM registrants")
cursor.execute("INSERT INTO registrants VALUES( " + "'" + first_name + "'" + ", " + "'" + last_name + "'" + ");")
db.commit()
db.close()
答案 0 :(得分:0)
我认为你应该以不同的方式将值传递给INSERT
cursor.execute("INSERT INTO registrants (fname, lname) VALUES (%s, %s)", (first_name, last_name)
我不确定这是否是你获得空白的地方,但是它会打开你的sql注入,所以将变量直接放入查询是不好的形式。
答案 1 :(得分:0)
这可能是范围问题。
如果剥离发生在不同的范围内(例如:first_name是一个全局变量而strip()出现在一个函数中)那么你将不会从另一个范围中受益(如果插入发生在另一个函数中,例如)。
您是否尝试过这项测试:
cursor.execute("INSERT INTO registrants VALUES( " + "'" + first_name.strip() + "'" + ", " + "'" + last_name.strip() + "'" + ");")
顺便问一下,你怎么知道db中有空格?检索或显示数据的方式可能存在问题。