トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

E71でPython-MySQLdbでCRUD のバックアップ(No.4)


E71でPython-MySQLdbでCRUD

タイトルの日本語がおかしいですが、Python-MySQLdbでCRUDやってみた記録です。

※CRUD:Create、Read、Update、Deleteの略

参照(select文)はE71でPython-MySQLdbの動作確認でやってますんで、更新系を中心にやってみます。

Insert文

早速やってみました。MySQLへの接続は前回と同様です。

Python 2.2.2 (#0, Nov  7 2008, 14:24:30) [C] on symbian_s60
Type "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> import MySQLdb
>>> conn = MySQLdb.connect(db="test_db", host="127.0.0.1", user="root",passwd="")
>>> 
>>> cur = conn.cursor()
>>> 

ここまでで、MySQLへの接続、SQL文実行準備が完了!

早速Insert文を発行してみる。

>>> cur.execute('''insert into test values ('jiro','pass1')''')
1L


insert文は、中でシングルクオートを使うので、「'''」でくるみます。
発行した結果、「1L」って出力されているので、なんか成功したっぽい。
本当に入っているか、selectしてみる。

>>> cur.execute('select * from test')
>>> 
1L
>>> rows = cur.fetchall()
>>> for row in rows:
...   print row[0],row[1]
... 
jiro pass1
>>> 


うん、ちゃんと入ってる。じゃあ、ロールバックしてみよう!

>>> conn.rollback()
>>> 


ちゃんとロールバックされているか、確認

>>> cur.execute('select * from test')
1L
>>> for row in rows:
...   print row[0],row[1]
... 
jiro pass1
>>>


あら?ロールバックされていない・・・
もしかして、デフォルトでオートコミット??

MySQLuiから確認しても、レコードは挿入されてる。

ってことは、デフォルトでオートコミットなのね笑。

※MySQLのオートコミットについてはE71でのMySQLのオートコミット無効化についてで調べてます。