Уведомления

Группа в Telegram: @pythonsu

#1 Март 11, 2015 12:05:59

Moi5es
Зарегистрирован: 2014-10-15
Сообщения: 65
Репутация: +  0  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

Вручную создал в БД таблицу с тремя столбцами: Name, Alert, Date. Пытаюсь записать в них данные, но ничего не происходит

import MySQLdb
path = r'C:\config.cnf'
db = MySQLdb.connect(read_default_file=path)
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
cursor.execute("INSERT INTO table1(Name, Alert, Date) VALUES('PC user','1', NOW())")
db.close()
IDLE ошибок не выводит

Отредактировано Moi5es (Март 11, 2015 12:32:01)

Офлайн

#2 Март 11, 2015 12:40:18

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

после вставки значений забыли вызвать commit

cursor.execute("INSERT INTO table(Name, Alert, Date) VALUES('PC user','1', NOW())")
db.commit()



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Март 11, 2015 12:43:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

Moi5es
cursor.execute("SELECT VERSION()")
Прочитай, что отвечает.

JOHN_16
после вставки значений забыли вызвать commit
Там по умолчанию автокоммит. А инструкция COMMIT нужна, когда есть инструкция для начала транзакции.
mysql.com. commit



Отредактировано py.user.next (Март 11, 2015 12:48:17)

Офлайн

#4 Март 11, 2015 13:20:40

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

py.user.next
Вероятно это из за настроек - на домашнем пк проверил, только после commit запись появляется в таблице. Я сам не силен в MySQL/MariaDB, поэтому вот только сам факт озвучиваю.

Добавлю: хотя в настройках mysqld указано autocommit ON. В общем не знаю в чем дело. Может позже разберусь.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Отредактировано JOHN_16 (Март 11, 2015 13:50:11)

Офлайн

#5 Март 11, 2015 13:29:58

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

В SQLite автокоммит присутствует по умолчанию.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Март 11, 2015 13:40:27

Moi5es
Зарегистрирован: 2014-10-15
Сообщения: 65
Репутация: +  0  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

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

Офлайн

#7 Март 11, 2015 14:51:43

Alen
Зарегистрирован: 2013-08-01
Сообщения: 372
Репутация: +  49  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

Версия python 2.7?

Moi5es
Пытаюсь записать в них данные, но ничего не происходит

Как проверяете?

Такой код:

import MySQLdb
path = r'C:\config.cnf'
db = MySQLdb.connect(read_default_file=path)
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
print('{} Version MySQL'.format(cursor.fetchall()))
cursor.execute('CREATE TEMPORARY TABLE test.mysupertest(id INT(11), val VARCHAR(255))')
cursor.execute("INSERT INTO test.mysupertest(id, val) VALUES(1, 'some_value')")
cursor.execute('SELECT * FROM test.mysupertest')
print(cursor.fetchall())
cursor.execute('DROP TABLE IF EXISTS test.mysupertest')
db.close()

рабочий?

Офлайн

#8 Март 11, 2015 15:12:03

Moi5es
Зарегистрирован: 2014-10-15
Сообщения: 65
Репутация: +  0  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

Версия python 2.7?
Python 3.4.1
Как проверяете?
Смотрю в БД
рабочий?
Ответ в IDLE
(('5.5.41-log',),) Version MySQL
((1, 'some_value'),)

Логи MySQL
c:\openserver\modules\database\MySQL-5.5\bin\mysqld.exe, Version: 5.5.41-log (MySQL Community Server (GPL)). started with:
TCP Port: 3306, Named Pipe: (null)
Time                 Id Command    Argument
150311 16:07:56	    1 Connect	root@localhost on 
		    1 Query	set autocommit=0
		    1 Query	SELECT VERSION()
		    1 Query	CREATE TEMPORARY TABLE test.mysupertest(id INT(11), val VARCHAR(255))
		    1 Query	INSERT INTO test.mysupertest(id, val) VALUES(1, 'some_value')
		    1 Query	SELECT * FROM test.mysupertest
		    1 Query	DROP TABLE IF EXISTS test.mysupertest
		    1 Quit

Записей в БД всё равно нет

Отредактировано Moi5es (Март 11, 2015 15:13:15)

Офлайн

#9 Март 11, 2015 15:20:21

Alen
Зарегистрирован: 2013-08-01
Сообщения: 372
Репутация: +  49  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

Moi5es
Ответ в IDLE
(('5.5.41-log',),) Version MySQL
((1, ‘some_value’),)

Moi5es
Записей в БД всё равно нет

А это что?

(1, 'some_value'),

Отредактировано Alen (Март 11, 2015 15:20:36)

Офлайн

#10 Март 11, 2015 21:48:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10031
Репутация: +  857  -
Профиль   Отправить e-mail  

В MySQL не записываются данные

JOHN_16
Вероятно это из за настроек
Moi5es
1 Query set autocommit=0
Вот у него отключается автокоммит. Там можно отключать в настройках.
mysql.com. autocommit

JOHN_16
В SQLite автокоммит присутствует по умолчанию.
SQLite вообще поразила, когда оказалось, что добавление колонки в таблицу есть, а удаления - нет.



Отредактировано py.user.next (Март 11, 2015 23:33:53)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version