错误括号附近的MariaDB SQL语法(';)';对于python

错误括号附近的MariaDB SQL语法(';)';对于python,python,mysql,mariadb,Python,Mysql,Mariadb,我正在尝试使用python脚本将一些数据插入到我的MariaDB中。 当我在控制台中执行以下操作时,它可以完美地工作 INSERT INTO `Failure` (`faillure_id`, `testrun_id`, `failed_at`, `log_path`, `node`) VALUES (2, 1, 'STEP8:RUN:RC=1', '/var/fail_logs','NodeA') 显示一个查询ok。我可以看到表格正在填充。没问题 然而,当我使用pyt

我正在尝试使用python脚本将一些数据插入到我的MariaDB中。 当我在控制台中执行以下操作时,它可以完美地工作

INSERT INTO `Failure` (`faillure_id`, `testrun_id`, `failed_at`, `log_path`, `node`) 
         VALUES   (2, 1, 'STEP8:RUN:RC=1', '/var/fail_logs','NodeA')
显示一个查询ok。我可以看到表格正在填充。没问题

然而,当我使用python执行相同的SQL查询时,我得到了一些错误。 这是我的密码

conn = MySQLdb.connect("localhost","user","","DB")
cursor = conn.cursor()

cursor.execute("""INSERT INTO `Failure` (`testrun_id`, `failed_at`, `log_path`, `node`) VALUES (%s, %s, %s, %s)""",(testrun_id, failed_at, log_path, node))
conn.commit()
这将产生以下错误

检查与您的MariaDB服务器版本相对应的手册,以了解要使用的正确语法


有人能帮我理解错误的来源吗

作为一种解决方法,我正在像这样构建查询字符串

sql_query = "INSERT INTO `Failure` (`testrun_id`, `failed_at`, `log_path`, `node`) VALUES " + "( '" + str(testrun_id) + "', '" + str(failed_at) + "', '"+ log_path + "', '" + node + "')"
cursor.execute(sql_query)

效率不是很高,但目前正在执行此任务。

正如我所想,这是唯一运行的查询吗?这个错误会被抛出到另一个地方吗?@ChrisForrence你好,克里斯,我已经测试过这个查询好几次了,每次都失败了。但是,有时只要参数数量少于3,查询就可以工作。我现在正在使用一种变通方法。我已经把我的工作放在了答案部分。如果不逃避,你会让自己对SQL注入敞开大门。是的,这是目前的工作。我还没有弄清楚为什么会这样。我用小php脚本和phpmyadmin尝试了相同的代码,只是为了测试它。结果证明不存在错误。