import pymysql temperature = 25.5 humi=36.5 # 连接数据库 connection = pymysql.connect( host='localhost', user='root', password='123456', db='test', charset='utf8' ) # 创建游标 cursor = connection.cursor() # 创建插入数据的 SQL 命令 sql = "INSERT INTO test (temp,humi) VALUES (?,?)" # 执行插入数据命令 cursor.execute(sql, (temperature,humi)) # 提交事务 connection.commit() print("温度数据已成功插入数据库。") # 关闭游标和连接 cursor.close() connection.close()这个程序有什么问题
时间: 2024-03-10 11:49:17 浏览: 168
Python:连接mysql数据库的三种方式,mysql.connector, pymysql, MYSQLdb
这段程序有一个问题,即 SQL 插入语句中的占位符应该使用 `%s` 而不是 `?`。
在 MySQL 和 PyMySQL 中,占位符应该使用 `%s` 而不是 `?`。因此,正确的 SQL 插入语句应该是:
```
sql = "INSERT INTO test (temp,humi) VALUES (%s,%s)"
```
另外,`execute` 方法的第二个参数应该是一个元组,而不是多个参数。因此,正确的执行插入数据命令的代码应该是:
```
cursor.execute(sql, (temperature, humi))
```
修改后的代码如下:
```
import pymysql
temperature = 25.5
humi = 36.5
# 连接数据库
connection = pymysql.connect(
host='localhost',
user='root',
password='123456',
db='test',
charset='utf8'
)
# 创建游标
cursor = connection.cursor()
# 创建插入数据的 SQL 命令
sql = "INSERT INTO test (temp,humi) VALUES (%s,%s)"
# 执行插入数据命令
cursor.execute(sql, (temperature, humi))
# 提交事务
connection.commit()
print("温度数据已成功插入数据库。")
# 关闭游标和连接
cursor.close()
connection.close()
```
阅读全文