簡體   English   中英

Python MySQL 未插入字符串變量

[英]Python MySQL not inserting string variables

我只是想在 html 中插入從表單中提取的兩個值。 也使用 Flask 和 mysql.connector

這是我的索引。html:

<h1>Simple Login Form</h1>

<form action="/signup" method="post">
    <input type="text" name="username" required/>
    <input type="password" name="password" required/>
    <input type="submit"/> </form>

還有我在 python(app.py) 中的一行:

@app.route('/signup', methods=["POST"])
def signup():
    username = str(request.form["username"])
    password = str(request.form["password"])
    cursor = mydb.cursor()
    cursor.execute("INSERT INTO users (username, password) VALUES({},{})".format(username, password))
    #cursor.execute("INSERT INTO users (username, password) VALUES('test','test')")
    mydb.commit()

無論出於何種原因,我在執行第一個 cursor 時出現內部服務器錯誤,但 '#' cursor 代碼工作正常......請有人告訴我我哪里出錯了。

你的價值觀沒有被引用。 將格式化的字符串放在引號中,或者更好的是,使用綁定變量和占位符來安全地執行它:

cursor.execute("INSERT INTO users (username, password) VALUES(:username, :password)", [username, password])

有關更多信息,請參閱https://cx-oracle.readthedocs.io/en/latest/user_guide/bind.html

終於讓它工作了,就像改變一樣簡單:

cursor.execute("INSERT INTO users (username, password) VALUES({},{})".format(username, password))

至:

cursor.execute("INSERT INTO users (username, password) VALUES('{}','{}')".format(username, password))

只需將 {}、{} 更改為 '{}'、'{}'

遺憾的是,沒有其他方法對我有用,只有這種方法能給我所需的結果。

謝謝邁克斯科蒂

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM