Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Март 14, 2007 16:08:55

kailito
От:
Зарегистрирован: 2007-03-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

есть следующий код. В базу не заносит. Не ругается. мускль из консоли заносит. Индекс исправно увеличивает после выполнения сего кода, но кроме индеска ничего не меняется


#!c:\Python\python.exe
import os, sys, time, string
import MySQLdb
con = MySQLdb.connect(host=“127.0.0.1”, port=3306,
user=“test”, passwd=“test”, db=“test”)
cursor = con.cursor( )
sql = “INSERT sync (ray,timepr,stan,com) VALUES (23,'20070314105501',0,25);”
print sql
cursor.execute(sql)
cursor.close()
con.close( )

заранее прошу прощения, только начал с питоном. ранее давно было знакомство с пхп. никогда таких проблемм небыло



Офлайн

#2 Март 14, 2007 16:23:55

kailito
От:
Зарегистрирован: 2007-03-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

нет, primary key с автоинкрементом увеличивается.



Отредактировано (Март 14, 2007 16:28:05)

Офлайн

#3 Март 14, 2007 16:47:12

Viper
От:
Зарегистрирован: 2006-11-08
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

kailito, надо вызывать con.commit() после cursor.execute(sql) или настраивать MySQL на автокоммит.



Офлайн

#4 Март 14, 2007 17:05:14

Mkdir
Зарегистрирован: 2006-06-30
Сообщения: 211
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

Viper
kailito, надо вызывать con.commit() после cursor.execute(sql) или настраивать MySQL на автокоммит.
+1 (опередили меня)



Офлайн

#5 Март 14, 2007 17:05:16

kailito
От:
Зарегистрирован: 2007-03-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

хух! спасибо! чуть не поседел)



Отредактировано (Март 14, 2007 17:07:11)

Офлайн

#6 Март 14, 2007 17:05:57

Mkdir
Зарегистрирован: 2006-06-30
Сообщения: 211
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

kailito
Viper у меня же con.close( ), вроде все по букварю. Для пробы убрал всё после cursor.execute(sql) :). Тоже, только в профиль. Может чего MySQLdb нужно достроить?
commit



Офлайн

#7 Март 14, 2007 17:08:08

kailito
От:
Зарегистрирован: 2007-03-14
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

Mkdir
осознал и исправился) ещё раз всем спасибо!



Офлайн

#8 Март 19, 2007 14:57:30

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

Есть такой sql-запрос:
“INSERT INTO fiz VALUES ('2000000000', ‘Normal’, ‘Алина’, ‘1982-04-07’, ‘', ’', ‘', ’', ‘', ’', ‘', ’', ‘', ’', ‘', ’', ‘', ’', ‘', ’', ‘', 0, ’'); COMMIT”
На что выходит ошибка:
Traceback (most recent call last):
File “C:\cb\frames.py”, line 339, in OnButtonSave
curs.execute(sql)
File “C:\Python24\Lib\site-packages\MySQLdb\cursors.py”, line 146, in execute
query = query.encode(charset)
UnicodeEncodeError: ‘latin-1’ codec can't encode characters in position 49-53: ordinal not in range(256)

посмотрела cursors.py, он перекодирует запрос в кодировке db….. перепроверила, везде в базе кодировка utf8. Не могу понять, в чем дело.



Офлайн

#9 Март 19, 2007 17:13:21

balu
От:
Зарегистрирован: 2006-05-24
Сообщения: 521
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

proDiva
Не могу понять, в чем дело
Не зная мускуля, предположу, что вы не правильно написали запрос. Я бы писал так insert into (field0, field1, …, fieldN) values (value0, value1, …, valueN)
и делал бы не
, ‘', ’', 0, ''); COMMIT"
, а cursor.commit() в соответствие с API DB.

Еще можно попробовать убрать умолчальную кодировку в БД - посмотреть как она будет себя вести.
Еще: у тебя точно кодировки в базе и в запросе совпадают? выведи запрос в текстовый файл и проверь кодировку.



Отредактировано (Март 19, 2007 17:28:12)

Офлайн

#10 Март 19, 2007 17:40:36

Viper
От:
Зарегистрирован: 2006-11-08
Сообщения: 137
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает insert & update в mysqldb

Эта ошибка точно связана с кодировками, можно попробовать использовать метод connection.set_character_set.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version