亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MySQL & Python:SQL 語句中并未使用所有參數

MySQL & Python:SQL 語句中并未使用所有參數

胡子哥哥 2023-06-13 15:21:00
我使用 MySQL 創建了以下數據庫:CREATE TABLE tutors (id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50) NOT NULL,email VARCHAR(320) NOT NULL,description VARCHAR(400) NOT NULL,image VARCHAR(150) NOT NULL, applyDate DATE NOT NULL)其中 image 列存儲我存儲在文件系統中的圖像的絕對路徑。但是,當我嘗試插入用戶輸入的數據時,例如arguments = ("Name", "[email protected]", "desc", "C:\\Users\\path\\to\\image.png", "2020-08-23")在代碼中使用 Pythoncursor.execute("INSERT INTO tutors (name, email, description, image, applyDate) VALUES (?, ?, ?, ?, ?)", arguments)conn.commit()它給了我以下錯誤:mysql.connector.errors.ProgrammingError: Not all parameters were used in the SQL statement.當我將每個替換為 時它會起作用?,%s但我讀到它%s容易受到 SQL 注入攻擊,所以如果可能的話我寧愿遠離它。?有沒有不工作的原因?
查看完整描述

1 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

占位?符僅適用于準備好的語句游標,例如cursor = conn.cursor(prepared=True).

如果您不想或不需要使用準備好的語句,請使用%sas 占位符。這是安全的,因為它們的值在執行查詢之前被轉義和引用。


查看完整回答
反對 回復 2023-06-13
  • 1 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號