[英]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.