python - 为什么 ser.readline 数据没有出现在 mysql 中?

标签 python mysql

我正在使用一个连接到 arduino 的传感器,并使用 ser.readline() 来打印传感器的读数和成功。但是当我想使用 ser.readline 将读取值发送到 mysql 时。它只传递设备名称和当前时间,mysql 中显示的读数值为'0'。这是我的编码。

import time
import serial
import smtplib
import datetime
import MySQLdb

db = MySQLdb.connect("192.168.0.103", "fyp", "123456", "system")
ser = serial.Serial('/dev/ttyACM0', 9600)

while True:
      api = ser.readline()
      current_time = datetime.datetime.now()
      print (api)

      sql = "INSERT INTO reading (series_no, time, api) VALUES ('test1', current_time, api)"
      data = (current_time, api)
      cur.execute(sql)

db.close()

使用 %s 也不行。提前谢谢你。

最佳答案

您没有正确地参数化查询。需要解决的几个问题:

  • 为查询参数添加占位符 - %s,周围没有引号
  • data 元组传递给 execute()
  • 提交交易

固定版本:

sql = "INSERT INTO reading (series_no, time, api) VALUES ('test1', %s, %s)"
data = (current_time, api)
cur.execute(sql, data)
db.commit()

关于python - 为什么 ser.readline 数据没有出现在 mysql 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37369333/

相关文章:

python - 使用 DjangoRestFramework 序列化两个查询集

MySQL 从多对多关系枢轴中选择父行

php - codeigniter 中的 Home Controller 中未调用 user_validation 函数

php - CSV 导出/导入 PHPExcel

mysql - 使用与前 10 名不同的内容

mysql - Joomla 3.1 数据库更新查询不起作用

python - 如何在 Python 的列表中扩展列表?

python - 如何在 Windows 10 上运行 TensorFlow?我有 GPU Geforce gtx 1650。我可以在上面运行 TensorFlow 吗?如果是,那么如何?

python - 如何在循环中无延迟地刷新 Tkinter 显示

python - 在 Django REST Framework 中将一组对象作为单个字典写入