Ошибка программирования при вставке переменных из CSV в SQL - PullRequest
0 голосов
/ 20 ноября 2019

Я собираю данные в Интернете и пытаюсь поместить их в мою таблицу в моем SQL. Эта ошибка продолжает появляться даже после того, как я изменил то, что я изначально считал неправильным

ProgrammingError: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'type, bathrooms, bedrooms)VALUES('495000', '119 The Dargan Building, Heuston Sou' at line 1

Первоначально было то, что в моей таблице базы данных не было достаточно символов для адреса переменной, было установлено только 50, но ятеперь изменил это на 250, но появилась та же ошибка. Теперь этот код работает:

import mysql.connector
import csv
#creating csv file
with open ('daftdata.csv','w') as file:

    for row in all_var:
        writer.writerow(row)
    file.close      

mydb = mysql.connector.connect(host='localhost',
user='root',
passwd='123',
database='123')
#prepare cursor
cursor = mydb.cursor()
with open("daftdata.csv", "r") as infh:
    reader =csv.reader(infh)
#csv_data = csv.reader('daftdata.csv')
    for row in reader:
        print(row)
        cursor.execute("INSERT INTO dafttable(price, address, house type, bathrooms, bedrooms)VALUES(%s, %s, %s,%s,%s)",row)

#close the connection to the database.
mydb.commit()
cursor.close()

1 Ответ

0 голосов
/ 20 ноября 2019

Для столбцов типа char значение должно быть заключено в кавычки. Если посмотреть на SQL, это должно относиться к столбцу адресов, поэтому запрос должен быть модифицирован так, чтобы заключать в кавычки значение.

Также имена столбцов с пробелами в них должны быть заключены в квадратные скобки или кавычки. Это относится к столбцу house type.

cursor.execute("INSERT INTO dafttable(price, address, [house type], bathrooms, bedrooms)VALUES(%s, '%s', %s, %s, %s)",row)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...