[ここに画像の説明を入力してください] [1]私は現在、学校のプロジェクトを作成中です。壁に到達する時間が来ています。MySQLdbデータベースからデータを取得できません
私はRaspberry Pi 3+のUSBポートからデータを取得しようとしています。私はArduino Nanoを接続しており、USBポートを介してPiからその文字列(RFIDカードの10進数のUID番号)をPiに送信しています。ここではすべてうまく動作しますが、文字列(ID)を問題なく印刷できます。カードのIDとデータベースのIDを比較しています。静的な数値(コードの下にコメント)を置くと、データが印刷されます。しかし、私がシリアル回線で試しても、何も起こりません。それはまったくデータを取得しないようです。私のデータベースの見通しは、Pythonコードの下にもあります。 ありがとうございました! !
card_id serial_no LastName FirstName
1 | 2136106133 | Hansen | Peter |
2 | 117254270 | Larsen | Thompson |
ます。#/ usr/bin/envをパイソン
import MySQLdb
import serial
ser = serial.Serial('/dev/ttyUSB0',9600)
db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="root", # your username
passwd="root", # your password
db="RFID") # name of the data base
cur=db.cursor()
CardID = 0
LastName = ""
FirstName = ""
while True:
CardID=ser.readline()
print "pweasda"
print CardID
print "pewpew"
# CardID = 117254270 - this works. The problem is that I have many RFID cards/tags with different IDs of course. With this statement it prints everything correctly.
cur.execute('SELECT * FROM cards WHERE serial_no=%s',(CardID))
results = cur.fetchall()
for row in results:
FirstName = row[3]
LastName = row [2]
serial_no = row [1]
card_id = row [0]
#print the fetched results
print "FirstName=%s,LastName=%s,serial_no=%s,card_id=%s" % \
(FirstName, LastName, serial_no, card_id)
db.commit()
print "Data committed"
出力画像(エラーなし):[1]:http://postimg.org/image/jf2doogrv/
あなたのデータベースはMySqlまたはsqliteにありますか? –
私のpythonコードの冒頭にはimport MySQLdbがあります。しかし、私もsqlite3を試してみました。同じ結果 – Smesh
いいえ、上記のコードはmysqlでのみ動作します! –