Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 19, 2009 13:10:10

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

Здравствуйте.
код следующий

conn = MySQLdb.connect(db='bd1',host='localhost',user='root',passwd='1234')
curs = conn.cursor()

sql= 'DELETE FROM Values WHERE Id="13" and Dev="15";'
curs.execute(sql)

sql = 'INSERT INTO Values(Id, Dev, Date) VALUES("10", "12", '+str(pid)+');' #pid - переменная
curs.execute(sql)

sql = 'update Pars set Coms="1" where ComsId="29"; COMMIT;'
curs.execute(sql)

sql = 'select Out, In, ComsId, Coms from Pars where Id="10" and Dev="12";'
curs.execute(sql)
Работает до последнего селект запроса. если убрать запрос update то срабатывает и селект запрос, но после обновления не работает ни один запрос на выборку, может я что то не знаю что нужно применять после новой транзакции (update запросов) для последующих select`ов?



Офлайн

#2 Окт. 19, 2009 13:55:24

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

Нужно после всех запросов, которые вносят в базу изменения сделать

conn.commit();



Офлайн

#3 Окт. 19, 2009 14:29:51

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

regall
но при этом после update отдельно commit был не нужен. спасибо. признателен :) код теперь таков и прекрасно работает.

conn = MySQLdb.connect(db='bd1',host='localhost',user='root',passwd='1234')
curs = conn.cursor()

sql= 'DELETE FROM Values WHERE Id="13" and Dev="15";'
curs.execute(sql)

sql = 'INSERT INTO Values(Id, Dev, Date) VALUES("10", "12", '+str(pid)+');' #pid - переменная
curs.execute(sql)
conn.commit()

sql = 'update Pars set Coms="1" where ComsId="29";'
curs.execute(sql)
conn.commit()

sql = 'select Out, In, ComsId, Coms from Pars where Id="10" and Dev="12";'
curs.execute(sql)



Офлайн

#4 Окт. 19, 2009 14:52:23

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

Все еще зависит от конфигурации MySQL на твоей ОС.
По умолчанию, настройки для винды и линукса неодинаковые,
к примеру, на винде по умолчанию для MYSQL сервера установлена опция AUTOCOMMIT=True, и эти коммиты могут не понадобится



Отредактировано (Окт. 19, 2009 14:52:44)

Офлайн

#5 Окт. 19, 2009 14:55:28

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

regall
работаю в убунту 9.04, видать тут его значение по дефолту тру
спасибо



Офлайн

#6 Окт. 20, 2009 05:57:24

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

Вот этот кусок надо переписать

Muslim
sql = 'INSERT INTO Values(Id, Dev, Date) VALUES("10", "12", '+str(pid)+');' #pid - переменная
curs.execute(sql)
conn.commit()
sql = 'INSERT INTO Values(Id, Dev, Date) VALUES("10", "12", %s);'
curs.execute(sql, [pid])
conn.commit()



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#7 Окт. 21, 2009 14:52:33

Muslim
От:
Зарегистрирован: 2009-04-06
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

PooH
удобно :cool:



Офлайн

#8 Окт. 21, 2009 16:01:44

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

Muslim
PooH
удобно :cool:
Дело не в удобстве, а в SQL инъециях



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#9 Окт. 29, 2009 14:33:52

dvs
От:
Зарегистрирован: 2006-05-22
Сообщения: 176
Репутация: +  3  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

Muslim, точки с запятой в конце запросов не нужны



Офлайн

#10 Дек. 16, 2009 23:18:11

__ALEN__
От:
Зарегистрирован: 2009-07-24
Сообщения: 21
Репутация: +  0  -
Профиль   Отправить e-mail  

MySQLdb проблема запросов select после update

Привет всем, у меня тоже проблема с mysql. Дело в том что добавляет нормально, а выбирает только одну запись. Вот код:

import _mysql
db=_mysql.connect('localhost','root')
db.select_db('base')
db.query("SELECT * FROM `table`;")
res=db.store_result()
result=res.fetch_row(how=1)



Отредактировано (Дек. 16, 2009 23:27:10)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version