如何使用python将变量插入mysql数据库? “您的SQL语法有错误”

问题描述 投票:0回答:1

我正在尝试使用python将一个变量插入mysql数据库。但是我有语法错误..能帮我吗? :)

import mysql.connector
    from mysql.connector import Error
    from mysql.connector import errorcode

    try:
        connection = mysql.connector.connect(host='localhost',
                                         database='Xiaomi_Temp',
                                         user='user',
                                         password='pass')
        cursor = connection.cursor()
        mySql_insert_query = """ INSERT INTO Temp_test (batt) VALUES (%d) """
        recordTuple = (batt)
        print(batt)
        cursor.execute(mySql_insert_query, recordTuple)


        connection.commit()
        print("Record inserted successfully into table")
        cursor.close()

    except mysql.connector.Error as error:
        print("Failed to insert record into table {}".format(error))

    finally:
        if (connection.is_connected()):
            connection.close()
            print("MySQL connection is closed")

我有变量batt,它具有整数值。我的输出是:

Failed to insert record into table 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '%d)' at line 1
MySQL connection is closed
python mysql mysql-python
1个回答
0
投票

由于执行查询时整个查询都必须为字符串格式,因此应使用%s代替%d,这可以按照以下步骤进行,

         mySql_insert_query = """ INSERT INTO Temp_test (batt) VALUES (%s) """
         recordTuple = (batt)
         print(batt)
         cursor.execute(mySql_insert_query, recordTuple)
© www.soinside.com 2019 - 2024. All rights reserved.