簡體   English   中英

為什么ser.readline數據不出現在mysql中?

[英]Why ser.readline data not appear in 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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM