为什么 mySQL Python 查询不插入新条目?

Why does a mySQL Python Query not insert a new entry?

所以我想在我的 mySQL 数据库中添加一个新条目。 这里的问题是,它增加了 id,但确实添加了条目。 经过一些谷歌搜索后,我发现失败的 INSERT 查询也会增加 AUTO_INCREMENTd 值(在我的例子中是 id)。

mySQL Table 是使用 CREATE TABLE IF NOT EXISTS TS3_STAMM_1 (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, name VARCHAR(64) NOT NULL, ts3_uid VARCHAR(64) NOT NULL, points INT(8) UNSIGNED NOT NULL); 由 python 的 MySQLdb 模块中的函数 qServer.execute(querystring) 调用。

然后我使用 qString = "INSERT INTO TS3_STAMM_1 (name, ts3_uid, points) VALUES ('{}', '{}', {})".format(name, uid, pnts)(数据类型正确,我至少进行了四重检查)和函数 qServer.exectue(qString) 将新条目插入数据库。

但它是递增 ID,而不是添加条目。所以我猜这是一个失败的查询,但为什么呢?它是如何发生的?如何解决?

简单的 SELECT 查询以同样的方式工作,手动添加数据也工作正常。只有 python 查询失败。

注意:qServer是到服务器的连接,其定义为:

try:
    qConn = MySQLdb.connect(host="...", user="...", passwd="...", db="...")
    qServer = qConn.cursor()
except OperationalError:
    print("Cannot connect to mySQL Database! Aborting...")
    exit(1)

使用提交 Luke。

>>> cursor.execute("INSERT INTO employees (first_name) VALUES (%s)", ('Jane', ))
>>> qConn.commit()

使用 str.format 创建 SQL 查询是个坏主意。