-1

ユーザーデータを取得してmysqlデータベースに入れるWebフォームがあります。先頭と末尾の空白/スペースを削除する必要があります。現在、strip() メソッドを使用していますが、mysql データベースではなく、フィールドに対してのみトリムします。

私のコードは次のとおりです。

first_name = first_name.strip()
last_name = last_name.strip()

などなど。Webページでは完全に削除されますが、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

それは範囲の問題かもしれません。

ストリッピングが別のスコープで発生した場合 (例: first_name がグローバル変数で、strip() が関数内で発生した場合)、別のスコープではメリットがありません (たとえば、挿入が別の関数で発生している場合)。

テストのためにこれを試しましたか:

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

ところで、データベースにスペースがあることをどのように知っていますか? データの取得または表示方法に問題がある可能性があります。

于 2012-12-05T19:07:06.520 に答える
0

INSERT に別の方法で値を渡す必要があると思います

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

それが空白を取得している場所かどうかはわかりませんが、SQL インジェクションが発生する可能性があるため、変数をクエリに直接入れるのは不適切です。

于 2012-12-05T18:19:10.760 に答える