为了账号安全,请及时绑定邮箱和手机立即绑定

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", "a@gmail.com", "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 关注
  • 78 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信