Форум сайта python.su
есть следующий код. В базу не заносит. Не ругается. мускль из консоли заносит. Индекс исправно увеличивает после выполнения сего кода, но кроме индеска ничего не меняется
#!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( )
заранее прошу прощения, только начал с питоном. ранее давно было знакомство с пхп. никогда таких проблемм небыло
Офлайн
нет, primary key с автоинкрементом увеличивается.
Отредактировано (Март 14, 2007 16:28:05)
Офлайн
kailito, надо вызывать con.commit() после cursor.execute(sql) или настраивать MySQL на автокоммит.
Офлайн
Viper+1 (опередили меня)
kailito, надо вызывать con.commit() после cursor.execute(sql) или настраивать MySQL на автокоммит.
Офлайн
хух! спасибо! чуть не поседел)
Отредактировано (Март 14, 2007 17:07:11)
Офлайн
kailitocommit
Viper у меня же con.close( ), вроде все по букварю. Для пробы убрал всё после cursor.execute(sql) :). Тоже, только в профиль. Может чего MySQLdb нужно достроить?
Офлайн
Mkdir
осознал и исправился) ещё раз всем спасибо!
Офлайн
Есть такой 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. Не могу понять, в чем дело.
Офлайн
proDivaНе зная мускуля, предположу, что вы не правильно написали запрос. Я бы писал так insert into (field0, field1, …, fieldN) values (value0, value1, …, valueN)
Не могу понять, в чем дело
, ‘', ’', 0, ''); COMMIT", а cursor.commit() в соответствие с API DB.
Отредактировано (Март 19, 2007 17:28:12)
Офлайн
Эта ошибка точно связана с кодировками, можно попробовать использовать метод connection.set_character_set.
Офлайн