ページへ戻る
− Links
印刷
Python/MySQLから使う基礎
の編集 ::
NJF Wiki
xpwiki
:
Python
/
MySQLから使う基礎
の編集
# k85dd1a0 の編集
ページ内容:
*接続してデータを更新する [#k85dd1a0] データベースに接続するには「MySQLdb.connect」を使います。 例えばローカルホストにある「python_test」というデータベースに「myuser」というユーザーでパスワード「mypassword」、文字コードUTF8で接続し、「test」というテーブルにデータを追加するには、以下のようにします。 import MySQLdb connector = MySQLdb.connect(host="localhost",db = "python_test", user="myuser", passwd="mypassword", charset="utf8") cursor = connector.cursor() cursor.execute(u"INSERT INTO test VALUE(1,'This is Test');") connector.commit() cursor.close() connector.close() とこのようにするとデータが一件追加されます。 「connector.commit()」を忘れてデータが追加されないというミスをやってしまいがちなので、注意してください。 ちなみにUnicode型でなくても大丈夫です。 cursor.execute("INSERT INTO test VALUE(1,'これはテスト');") でもマルチバイト文字を使うならUnicode型を使っておいた方が安心です。 もしマルチバイト文字を使って _mysql_exceptions.OperationalError: (1366, "Incorrect string value: '\\xE3\\x81\\x93\\xE3\\x82\\x8C...' for column 'data' at row 1") というようなエラーが出る場合は、MySQLのテーブル定義がUTF8になっていないので以下のSQLでテーブルのコード設定を変えるとうまくいきます。 ALTER TABLE test convert to CHARACTER SET utf8; 「cursor.execute」の部分は以下のようにパラメータを別に書くことも出来ます。 cursor.execute(u"INSERT INTO TEST VALUE(%s,%s);",(1,u"This is Test")) 一つ目の「%s」は「%d」かと思ったけれどもなぜかエラーになり「%s」だとうまくいきます。公式サイトでも数値を「%s」で受けているので、仕様のようです。 データ中の特殊文字などはエスケープされるので、SQLインジェクションなどを気にしないといけない場合は、こちらの記法がおすすめです。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「京都」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Python%2FMySQL%E3%81%8B%E3%82%89%E4%BD%BF%E3%81%86%E5%9F%BA%E7%A4%8E