Flask приложение, MySQL субд. Он увеличивает счетчик id, но данные не подставляет из-за чего строк в таблице не прибавляется.
file = request.files['img_data']
text = request.form['text_data']
title = request.form['text_title']
filename = secure_filename(file.filename)
cursor = mysql.connect().cursor()
cursor.execute("SELECT MAX(id) FROM posts")
filename = str(cursor.fetchone()[0]) + "." + get_ext(filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
cursor.execute('''INSERT INTO posts VALUE(NULL,"''' + title + "\",\"" + text + "\",\"" + filename + "\"," + '''NOW())''')
Соответственно в бд после запроса (второго, где insert) ничего нет, но если прописать вручную то такая штука (огромная разница между id, хотя строк всего три):
В общем не могу понять почему не вставляются данные.
Строка запроса: INSERT INTO posts VALUE(NULL, "qwerty", "wertyui", "19.png", NOW())
. Данные по-прежнему не вставляются, даже после mysql.connect().commit()
У вас, похоже, почему-то отключен автокоммит. При отключенном автокоммите все изменения нужно коммитить вручную через то же соединение, в котором изменения были внесены.
file = request.files['img_data']
text = request.form['text_data']
title = request.form['text_title']
filename = secure_filename(file.filename)
db_conn = mysql.connect()
cursor = db_conn.cursor()
cursor.execute("SELECT MAX(id) FROM posts")
filename = str(cursor.fetchone()[0]) + "." + get_ext(filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
cursor.execute(
'INSERT INTO posts VALUES (NULL, %s, %s, %s, NOW())',
(title, text, filename),
)
db_conn.commit()
P.S. И не надо допускать SQL-инъекции тупым сложением строк при формировании SQL-запроса
Какие существуют виды рекламных бордов и как выбрать подходящий?
Аренда удаленного сервера: цены, провайдеры и условия. Руководство для начинающих
Имеем такой код получения полей из таблицы в базе данных