我的脚本中有一个错误。我从plc获取数据。我发现很难将这些数据输入我的数据库。我可以与数据库通信,我可以获得clp信息,但我不会写
Programming error: you have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'name, product value, product status) VALUES ('Snap7 PLC TO App','1337','True')' at line 1
import snap7
import mysql.connector
from mysql.connector import Error
IP = '192.168.0.1'
RACK = 0
SLOT = 1
DB_NUMBER = 100
START_ADRESS = 0
SIZE = 260
plc = snap7.client.Client()
plc.connect(IP,RACK,SLOT)
plc_info = plc.get_cpu_info()
print(f'Module Type: {plc_info.ModuleTypeName}')
state = plc.get_cpu_state()
print(f'State : {state}')
db = plc.db_read(DB_NUMBER, START_ADRESS , SIZE)
product_name = db[2:256].decode('UTF-8').strip('\x00')
print(f'Product_Name: {product_name}')
product_value = int.from_bytes(db[256:258], byteorder='big')
print(f'Product_value: {product_value}')
product_status = bool(db[258])
print(f'Product_status: {product_status}')
inserir_dados = "INSERT INTO db_100(product name, product value, product status) VALUES (%s,%s,%s)"
sql = (product_name,str(product_value),str(product_status))
con = mysql.connector.connect(host = 'localhost', database = 'dados_clp', user = 'root', password = '12345678')
if con.is_connected():
db_info = con.get_server_info()
print("Conectado ao servidor", db_info)
cursor = con.cursor()
cursor.execute("select database();")
linha = cursor.fetchone()
print("Conectado ao banco de dados",linha)
cursor.execute(inserir_dados,sql)
db.commit()
if con.is_connected():
cursor.close()
con.close()
print("Conexão ao MySQL foi encerrada")
目前没有回答
相关问题 更多 >
编程相关推荐