Ошибка MySql 1054 при попытке вставить TXT-файлы в MySql

0

У меня есть несколько txt файлов в каталоге, и я хочу вставить их в mysql; содержимое каждого файла должно занимать строку. В MySQL у меня есть 2 столбца: ID (auto increment) и LastName (nvarchar (45)). Однако, когда я запускаю следующий код, я получаю сообщение об ошибке (1054). Что я здесь делаю неправильно?

import MySQLdb
import sys
import os
result = os.listdir("path")
path="dir_path";
for x in result:
    db = MySQLdb.connect("localhost","root","password","myblog")
    cursor = db.cursor()
    file = open(path+x, 'r')
    file_content = file.readline()   
    file.close() 
    cursor.execute('INSERT INTO clamp_test VALUES(default,file_content)')  
    db.commit()
    db.close()
  • 0
    Попробуйте INSERT INTO Clamp_test (LastName) VALUES (file_content), чтобы позволить колонке с автоинкрементом делать свое дело. Кстати, мне пришлось искать код ошибки (столбец «Неизвестно» в «Списке полей») - пожалуйста, предоставьте детали, если это возможно. Я подозреваю, что именно «по умолчанию» является причиной проблемы, хотя я не знаю Python, поэтому вполне могу ошибаться.
Теги:
python-3.x

1 ответ

1
Лучший ответ

Переменные не расширяются внутри строк, вам нужно использовать подготовленный оператор с переменной в качестве параметра.

cursor.execute('INSERT INTO clamp_test VALUES(default,%s)', (file_content,))  

Ещё вопросы

Сообщество Overcoder
Наверх
Меню