У меня есть таблица "персон" в базе данных "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,' Smith ',' John ',' longstreet ',' Paris ')' в строке 1
Otherтакие команды, как следующие, работают, поэтому с настройками соединения это не проблема:
query = ("SELECT * FROM persons")
cursor.execute(query)
result = cursor.fetchall()