2009年11月アーカイブ

[Perl]DBIの使い方入門

PerlでDBIモジュールを使ってDB操作を行うためのかんたんなサンプルコードです。

「都道府県マスタ」テーブルを作って、CRUD(レコード追加、読み取り、変更、削除)を行います。

注:
  • コマンドラインから実行することを想定しています。
  • ユーザ名、パスワード、DB接続情報などは環境に合わせて変更してくださいね。
  • サンプルではMySQLを使用していますが、他のRDBMSにも使えると思います。

 #!/usr/bin/perl
 
 use strict;
 use warnings;
 use DBI;
 
 my $user = 'username';
 my $passwd = 'pass';
 my $host = 'localhost';
 my $dbname = 'mysample';
 my $dbh = DBI->connect("DBI:mysql:$dbname:".$host, $user, $passwd);
 
 my $sql;
 my $sth;
 
 # CREATE TABLE
 $sql = "CREATE TABLE prefmaster ( id INT , name VARCHAR(255) ) ";
 $dbh->do($sql);
 
 # INSERT
 $sql = " INSERT INTO prefmaster (id,name) values (1, 'hokkaido') ";
 $dbh->do($sql);
 $sql = " INSERT INTO prefmaster (id,name) values (2, 'akita') ";
 $dbh->do($sql);
 
 # SELECT
 $sql = "SELECT * FROM prefmaster";
 
 $sth = $dbh->prepare($sql);
 $sth->execute;
 
 print "SELECT\n";
 while(my @a = $sth->fetchrow_array){
     print "@a\n";
 }
 print "\n";
 
 # UPDATE
 $sql = " UPDATE prefmaster SET name = 'iwate' WHERE id = 2 ";
 $dbh->do($sql);
 
 # DELETE
 $sql = " DELETE FROM prefmaster WHERE id = 1 ";
 $dbh->do($sql);
 
 # SELECT AGAIN
 $sql = "SELECT * FROM prefmaster";
 
 $sth = $dbh->prepare($sql);
 $sth->execute;
 
 print "SELECT\n";
 while(my @a = $sth->fetchrow_array){
     print "@a\n";
 }
 print "\n";
 
 
 # DROP TABLE
 $sql = " DROP TABLE prefmaster ";
 $dbh->do($sql);
 
 
 $sth->finish;
 $dbh->disconnect;
Ubuntu9.04のPECL版memcachedクライアントを入れようとしたらphpizeでエラーが出ます。
userdqn@colinux:~$ sudo pecl install memcached
downloading memcached-1.0.0.tgz ...
Starting to download memcached-1.0.0.tgz (22,281 bytes)
........done: 22,281 bytes
4 source files, building
running: phpize
sh: phpize: not found
ERROR: `phpize' failed

この場合は、php5-devをインストールすればOK。
 $ sudo apt-get install php5-dev

みなさん要注意ですよ!!

CoLinux(0.7.4) 上の Ubuntu9.04をUbuntu9.10にアップグレードしたら、このようなエラーメッセージを吐いてお亡くなりになりました。

colinux-error.JPG

CoLinuxが悪いんじゃないんです。
Ubuntuが悪いんじゃないんです。

バックアップをとっておかなかった私が悪いんです。

というわけで、みなさんもUbuntuをアップグレードする際はバックアップをとりましょう!!


Ubuntu公式サイトにもちゃんとそう書いてあります。


アップグレードの前に

  • Ubuntu 9.04からUbuntu 9.10へは直接アップグレードができます(UpgradeNotes(英語)を見てください)
  • アップグレードの前にUbuntu 9.04における全パッケージのアップデートを必ず実施してください。
追記

同じ目に会った人が何人かいるようです。。。
今のところ解決策は見つかっていません。

私はあきらめて、Ubuntu9.04をインストールしなおしました。

人気記事

このアーカイブについて

このページには、2009年11月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2009年9月です。

次のアーカイブは2009年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近の人気記事