sql =f'''insert into selectitems values({patientid},{selected_items})''' try: startMySQL(sql)哪里错了
时间: 2024-09-30 16:06:12 浏览: 28
Sqlserver 采用xml入参获取检查报告存储过程和函数
这个SQL字符串看起来像是尝试将`patientid`和`selected_items`插入到`selectitems`表中,但它包含了一些语法错误。以下是可能导致问题的部分:
1. 使用的是三引号(`'''`)而非单引号('')包裹SQL语句,这可能会导致字符串解析问题,因为在这个上下文中,三引号通常用于表示多行字符串。
2. `values({patientid},{selected_items})`这一部分需要更明确地指定列名和值,如果`patientid`和`selected_items`是变量,应使用`VALUES`关键字,并且直接将它们放在括号里,而不是字面的`{}`形式。
3. `startMySQL(sql)`函数名可能是对数据库操作函数的调用,但是函数名应该是执行SQL语句的,比如`execute()`、`query()`或具体的数据库驱动API方法。
正确的写法应该是类似这样的:
```python
sql = f"INSERT INTO selectitems (patientid, selected_items) VALUES (?, ?)"
cursor.execute(sql, (patientid, selected_items))
```
这里假设`patientid`和`selected_items`是查询中的参数,应该通过参数化查询防止SQL注入攻击。
阅读全文