我有一张桌子"人员"在数据库" 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()