python - 在MySQL上执行插入,没有错误但也没有插入

标签 python mysql

注意:我对 Python 还很陌生,所以问题可能是任何问题。

  • Python:3.6
  • MySQL:8

我有一个 MySQL 数据库设置,可以通过 Python 成功查询,所以我确信我的连接正常。我可以在 MySQL Workbench 中插入记录,所以我相当确定数据库没问题。但是,当我运行以下代码时,我没有收到错误(“完成”确实打印,“错误”不打印)。但是,该记录并未被插入。

import mysql.connector

cnx = mysql.connector.connect(user='furby',
    password='something',host='127.0.0.1', database='mydb')
    cursor = cnx.cursor()

document_root = ET.fromstring(semester.read('data'))
semester_name = document_root.get("Name")
print(semester_name)
query = ("SELECT semester_id 
    FROM StudentData.semesters 
    WHERE name = '%s'")
cursor.execute(query % semester_name)
cursor.fetchall()
print(cursor.rowcount)
if (cursor.rowcount == 0):
    print("hi")
    start_date = document_root.get("StartDate")
    end_date = document_root.get("EndDate")
    notes = document_root.get("Notes")
    try:
        query = "INSERT INTO StudentData.semesters 
            (name, start_date, end_date, notes) VALUES 
            ('" + semester_name + "', '" + start_date + "', 
            '" + end_date + "', '" + notes + "')"
        print(query)
        cursor.execute(query)
    except:
        print("error")

    print("done")

我遇到了很多错误,但突然间,没有错误了。不过,一定有什么错误吧?

我在这里做错了什么,会阻止记录插入而不产生任何类型的错误?

编辑 在Douglas的回答之后,我改为打印SQL插入语句,然后将其复制并粘贴到SQL Workbench中。同样,它通过 python 运行它不执行任何操作,但在 SQL Workbench 中运行确实会按预期插入记录。

最佳答案

我认为你应该关闭光标。你的连接是自动提交的吗? 请检查它,并且你应该提交它!

关于python - 在MySQL上执行插入,没有错误但也没有插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53480515/

相关文章:

python - 我必须从给定的 Dataframe : 中获取 "True"值多于 "False"值的组

python - 解码字符串 - 引号问题

mysql查询根据id将一列拆分为许多单独的列

mysql - 按日期名称和名称求和表,同时有时间间隔

mysql - 将 cte 转换为 mysql

php - mysql 到 csv 而不使用 mysql 的 INTO OUTFILE

python - 将settings.py移出django项目,如何设置使其正常工作?

python - 如何在时间序列中的每一天的开始和结束时获取值

python - 如何在包含 True 和 False 值的数组中找到 True 值所在的索引?

mysql - Vtiger 报告生成失败! table 太多; MySQL 一次连接只能使用 61 个表