-1

我有一个 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()
4

2 回答 2

0

我认为您应该以不同的方式将值传递给 INSERT

cursor.execute("INSERT INTO registrants (fname, lname) VALUES (%s, %s)", (first_name, last_name)

我不确定这是否是你得到空格的地方,但它打开了你的 sql 注入,所以将变量直接放入查询中是不好的形式。

于 2012-12-05T18:19:10.760 回答
0

这可能是范围问题。

如果剥离发生在不同的范围内(例如:first_name 是一个全局变量,而 strip() 发生在一个函数中),那么您将不会在另一个范围内从中受益(例如,如果插入发生在另一个函数中)。

您是否尝试过此测试:

cursor.execute("INSERT INTO registrants VALUES( " + "'" + first_name.strip() + "'" + ", " + "'" + last_name.strip() + "'" + ");")

顺便说一句,你怎么知道数据库中有空间?检索或显示数据的方式可能存在问题。

于 2012-12-05T19:07:06.520 回答