Найти - Пользователи
Полная версия: MySQLdb проблема запросов select после update
Начало » Базы данных » MySQLdb проблема запросов select после update
1 2
Muslim
Здравствуйте.
код следующий
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`ов?
regall
Нужно после всех запросов, которые вносят в базу изменения сделать
conn.commit();
Muslim
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)
regall
Все еще зависит от конфигурации MySQL на твоей ОС.
По умолчанию, настройки для винды и линукса неодинаковые,
к примеру, на винде по умолчанию для MYSQL сервера установлена опция AUTOCOMMIT=True, и эти коммиты могут не понадобится
Muslim
regall
работаю в убунту 9.04, видать тут его значение по дефолту тру
спасибо
PooH
Вот этот кусок надо переписать
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()
Muslim
PooH
удобно :cool:
PooH
Muslim
PooH
удобно :cool:
Дело не в удобстве, а в SQL инъециях
dvs
Muslim, точки с запятой в конце запросов не нужны
__ALEN__
Привет всем, у меня тоже проблема с 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)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB