2010-12-31

ロリポップの MySQL を Perl の CGI で使う

ロリポップ、MySQL が使えるらしいけれど、
データベースについては基本的にサポート外とさせていただきます。
詳しい知識がある方のみご利用ください。
とのことで詳細わからず、やってみてできたことだけ、書いておこうと思った次第。

ロリポップでの設定

ロリポップにログインして、ユーザー専用ページで「WEB ツール>データベース」を開く。 「データベース作成」ボタンを押す。

ロリポップの MySQL データベース設定

次の画面で、データベースのサーバーを選択、データベース名、パスワードを入力して「作成」ボタンを押す。

ロリポップの MySQL データベース設定

すると、こんな画面になって、ロリポップ管理画面での作業はおしまい。管理ツール phpMyAdmin を使って、テーブルとかをここで作ってしまうのもありかと。

ロリポップの MySQL データベース設定

Perl プログラム

あとは、サーバー上の Perl プログラムの書き方。参考にしたのはこちら。 で、例えば既存の list テーブルに一行挿入するプログラムがこちら。

use DBI;

$db = DBI->connect('DBI:mysql:LA00000000-abcdefghijkl:mysql504.phy.lolipop.jp', 'LA00000000', '1234567890123456');
$sth = $db->prepare("INSERT INTO list VALUES (1,'1st','memo 1st')");
$sth->execute;
$sth->finish;
$db->disconnect;

赤はデータベース名、青はデータベースのサーバー名、緑はユーザー名、紫はパスワード。それぞれ、先ほどロリポップのデータベース作成で設定した値を使用。

もひとつ、list テーブルから id、name、memo を取得して表示するプログラムがこちら。

use DBI;

$db = DBI->connect('DBI:mysql:LA00000000-abcdefghijkl:mysql504.phy.lolipop.jp', 'LA00000000', '1234567890123456');
$sth = $db->prepare("SELECT id, name, memo FROM list");
$sth->execute;
$num_rows = $sth->rows;
print "該当 $num_rows 件\n";
for ($i=0; $i<$num_rows; $i++) {
  @a = $sth->fetchrow_array;
  print "id=$a[0], name=$a[1] memo=$a[2] \n";
}
$sth->finish;
$db->disconnect;

お、なんだか自分でも色々できそうな気がしてきたぞ!というところで、おしまい。何かちゃんとしたもの、作ってみて公開するかも。

2010-12-30

Windows XP で My Pictures をマイピクチャに戻す方法

Windows XP で、いつの間にか「マイピクチャ」フォルダが「My Pictures」に変わっていたという話。どちらにせよフォルダの実体は「My Pictures」なので、そのままでもいいかなと思ったものの、「マイミュージック」と表記が合わなくなってしまうなと思い直し、復旧の方法を探る。

すると、こちらを発見。 この記事によると、コマンドプロンプトで、
C:\Documents and Settings\user>rundll32 mydocs.dll,PerUserInit
とするといいらしい。もちろん、赤字部分は自分のユーザー名。このとおりやってみると、すぐに解決。ありがたやー。

2010-12-25

Windows 7 がネットワークにつながらない…

Windows 7 のノートパソコンが、急にネットワークにつながらなくなって、途方にくれる。

コントロールパネル「ネットワークと共有センター」を見てみると、「アクティブなネットワークの表示」欄になぜか 2 つの値が…。つまり、コンピュータが 2 つのネットワークに属していることになっているみたい。

コマンドプロンプトから ipconfig してみると、やっぱりデフォルトゲートウェイが 2 つになっていた。

しばらく色々いじって、ウンウンうなっていたのだけれど、結局 Google 先生のお世話になることに…。別のパソコンで調べて、最終的にたどり着いたのがこのページ。
ネットワーク宛先0.0.0.0、ネットマスク0.0.0.0のテーブルを削除
>route delete 0.0.0.0 mask 0.0.0.0
OK!

ネットワーク宛先0.0.0.0、ネットマスク0.0.0.0、ゲートウェイ192.168.146.2のテーブルを追加
>route add 0.0.0.0 mask 0.0.0.0 192.168.146.2
OK!
これでバッチリ直りました。ありがたやー。あ、もちろん、赤字部分は自分のネットワークのゲートウェイのアドレスで。

あと、route delete や route add するコマンドプロンプトも「スタート>すべてのプログラム>アクセサリ」の「コマンドプロンプト」を右クリック「管理者として実行」で開かないと、

>route delete 0.0.0.0 mask 0.0.0.0
要求された操作には管理者特権が必要です。

って言われちゃうので、注意がいるかも。

2010-12-12

Firefox で画像の幅と高さをコピーするためのブックマークレット

ブログに画像を載せる時、
<img src="http://example.com/image.jpg" />
と書いたあと、実際にそのページを Firefox で表示してみて、

画像の右クリックから「画像だけを表示」、Firefox のタイトルバーに表示されている幅と高さを img の width と height の要素に転記する…というようなことをしてきたのだけれど、転記の際にけっこう忘れてしまうので、ブックマークレットにしてみた。



WxH

需要があればどうぞ。

2010-12-05

Google App Engine 1.4.0 へのアップデートではまる…。

というわけで、1.4.0 SDK へ更新しようとした矢先、eclipse のコンソールにこんなメッセージが…。
インストールする項目の収集中にエラーが発生しました
  No repository found containing: org.eclipse.jst.server.core/osgi.bundle/1.2.0.v20090421
  No repository found containing: org.eclipse.wst.server.core/osgi.bundle/1.1.102.v20090825
大分アップデートしていなかったから、なんかほかのを先にしなくちゃいけないのかな、と色々更新してからもう一度チャレンジしてみたら…、
インストールする項目の収集中にエラーが発生しました
  No repository found containing: com.google.appengine.eclipse.core/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.gdt.eclipse.core/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.gdt.eclipse.platform/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.gdt.eclipse.platform.e34/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.gdt.eclipse.platform.shared/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.gdt.eclipse.suite/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.gwt.eclipse.core/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.gwt.eclipse.oophm/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.appengine.eclipse.sdkbundle.1.4.0/osgi.bundle/1.4.0.v201012021501
  No repository found containing: com.google.gdt.eclipse.maven/osgi.bundle/1.4.0.v201010280047
  No repository found containing: com.google.gwt.eclipse.sdkbundle.2.1.0/osgi.bundle/2.1.0.v201010280047
ふ、増えてるし…。

ということで、結局 Google 先生のお世話になることにして、こんなページを発見。 書かれているのとは少し違う方法だけれど、eclipse で「ヘルプ > ソフトウェア更新 > サイトの管理」とすすみ、「エクスポート」で bookmarks.xml を保存。

全部のサイトを選択後「除去」して、さっきのファイルを「インポート」…、っていう風にするとできましたとさ。めでたし、めでたし。

Zenback - Everyone's Related Posts