python中的MySQL连接器:插入行错误

时间:2018-06-05 22:41:47

标签: python mysql mysql-connector

我有一张桌子"人员"在数据库" testdb"。在mysql命令行中执行以下操作时显示以下内容:

SELECT * FROM persons;
+----------+----------+-----------+----------------+-------------+
| PersonID | LastName | FirstName | Address        | City        |
+----------+----------+-----------+----------------+-------------+
|        1 | Angelil  | Oliver    | Farbstrasse    | Zurich      |
|        2 | Herger   | Nadja     | schoggistrasse | Unteraegeri |
|        3 | Kopparla | Pushkar   | shortstreet    | Banglore    |
|        4 | Herger   | Michael   | bananastreet   | cambridge   |
+----------+----------+-----------+----------------+-------------+

如果我想插入一个新行,我会使用:

INSERT INTO persons
  VALUES (5, 'Smith', 'John', 'longstreet', 'Paris');

我现在想用Python做同样的事情:

import mysql.connector
cnx = mysql.connector.connect(user='elephant', password='password',
                              host='zoo.ddns.net',
                              database='testdb')

cursor = cnx.cursor()
insert = ("INSERT INTO persons"
                "VALUES (5, 'Smith', 'John', 'longstreet', 'Paris')")

cursor.execute(insert)
cnx.close()

但我收到了错误:

  

mysql.connector.errors.ProgrammingError:1064(42000):你有一个   SQL语法错误;查看与您的手册相对应的手册   MySQL服务器版本正确使用语法#5;'史密斯',   ' John',' longstreet',' Paris')'在第1行

以下其他命令可以正常工作,因此连接设置不存在问题:

query = ("SELECT * FROM persons")
cursor.execute(query)
result = cursor.fetchall()

0 个答案:

没有答案