语法错误Mysql服务器您的sql sintax中有错误

2024-03-28 13:39:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我的脚本中有一个错误。我从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")

Tags: nameimportinfodbconnectorgetvaluestatus