perl:modules:dbdmysql
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| perl:modules:dbdmysql [2018/06/25 10:40] – 外部編集 127.0.0.1 | perl:modules:dbdmysql [2018/07/20 14:16] (現在) – taka | ||
|---|---|---|---|
| 行 5: | 行 5: | ||
| [[http:// | [[http:// | ||
| - | : | + | : |
| - | CPAN 経由でインストールするなら | + | CPAN経由でインストールする方法。 |
| - | <sxh bash; gutter: false;> | + | <sxh bash; gutter: false> |
| $ sudo cpan | $ sudo cpan | ||
| - | $ install DBD::mysql | + | cpan> |
| </ | </ | ||
| 行 20: | 行 20: | ||
| libmysqlclient.18.dylib絡みのエラーが出た場合は以下を試して再実行。 | libmysqlclient.18.dylib絡みのエラーが出た場合は以下を試して再実行。 | ||
| - | <sxh bash; gutter: false;> | + | <sxh bash; gutter: false> |
| sudo ln -s / | sudo ln -s / | ||
| </ | </ | ||
| 行 26: | 行 26: | ||
| ===== 初期化 ===== | ===== 初期化 ===== | ||
| - | <sxh perl; gutter: true;> | + | <sxh perl> |
| # | # | ||
| BEGIN { | BEGIN { | ||
| - | use File:: | + | |
| - | chdir dirname( $0 ); | + | chdir dirname($0); |
| } | } | ||
| 行 43: | 行 43: | ||
| # 初期設定 | # 初期設定 | ||
| - | my $host | + | my $host |
| - | my $user | + | my $user |
| - | my $pass | + | my $pass |
| - | my $database = 'test_database'; | + | my $database = "test_database"; |
| - | my $table | + | my $table |
| # インスタンス変数の生成 | # インスタンス変数の生成 | ||
| - | my $dbh = '' | + | my $dbh = "" |
| $dbh = " | $dbh = " | ||
| - | $dbh = DBI-> | + | $dbh = DBI-> |
| print " | print " | ||
| 行 58: | 行 58: | ||
| # | # | ||
| # RaiseError | # RaiseError | ||
| - | # 1(On) を指定すると、エラー発生時に例外 die() を発する。デフォルトは 0(Off)。 | + | # |
| # PrintError | # PrintError | ||
| - | # 1(On) を指定すると、エラーコードを返すことに加えて警告を発する。デフォルトは 1(On)。 | + | # |
| # AutoCommit | # AutoCommit | ||
| - | # | + | # |
| # | # | ||
| # ※AutoCommit はストレージエンジンに InnoDB または BDB を使用しているテーブルに対してのみ使用出来る。 | # ※AutoCommit はストレージエンジンに InnoDB または BDB を使用しているテーブルに対してのみ使用出来る。 | ||
| - | # 文字コードを UTF8 で扱うならこれを忘れずに | + | # 文字コードを UTF8 で扱うならこれを忘れずに。 |
| - | $dbh-> | + | $dbh-> |
| </ | </ | ||
| 行 74: | 行 74: | ||
| ここではデータを配列で取得するサンプルを紹介する。このやり方では SELECT したフィールド名の順番で配列に入ってくる。そのため何番目の添字にどのフィールドが入っているか自分で把握しておく必要がある。また、将来的にフィールドの追加等の変更があった場合、その都度添字を修正していく必要がある。 | ここではデータを配列で取得するサンプルを紹介する。このやり方では SELECT したフィールド名の順番で配列に入ってくる。そのため何番目の添字にどのフィールドが入っているか自分で把握しておく必要がある。また、将来的にフィールドの追加等の変更があった場合、その都度添字を修正していく必要がある。 | ||
| - | <sxh perl; gutter: false;> | + | <sxh perl> |
| - | # test_table から id が 10 以上のデータを取ってくる | + | # test_tableからidが10以上のデータを取ってくる |
| - | my $sth = '' | + | my $sth = "" |
| - | $sth = $dbh-> | + | $sth = $dbh-> |
| $sth-> | $sth-> | ||
| print " | print " | ||
| 行 84: | 行 84: | ||
| my @tmp = (); | my @tmp = (); | ||
| my @data = (); | my @data = (); | ||
| - | while ( @tmp = $sth-> | + | while (@tmp = $sth-> |
| - | push @data, [ @tmp ]; | + | push @data, [ @tmp ]; |
| } | } | ||
| 行 91: | 行 91: | ||
| # 取得したデータを出力 | # 取得したデータを出力 | ||
| - | foreach ( @data ) { | + | foreach (@data) { |
| - | utf8:: | + | utf8:: |
| - | print $_->[0], " | + | print $_->[0], " |
| } | } | ||
| </ | </ | ||
| 行 99: | 行 99: | ||
| ===== データの取得方法(連想配列編) ===== | ===== データの取得方法(連想配列編) ===== | ||
| - | ここではデータを連想配列で取得するサンプルを紹介する。このやり方では SELECT したフィールド名をキーとした連想配列でデータを取得できる。そのため配列の時のように何番目の添字にどのフィールドが入っているか等を把握しておく必要がなく、将来的にフィールドの追加等の変更があった場合も臨機応変に対応出来るので個人的にはこちらがオススメ。 | + | ここではデータを連想配列で取得するサンプルを紹介する。\\ |
| + | このやり方ではSELECTしたフィールド名をキーとした連想配列でデータを取得できる。\\ | ||
| + | そのため配列の時のように何番目の添字にどのフィールドが入っているか等を把握しておく必要がなく、\\ | ||
| + | 将来的にフィールドの追加等の変更があった場合も臨機応変に対応出来るので個人的にはこちらがオススメ。 | ||
| - | <sxh perl; gutter: false;> | + | <sxh perl> |
| - | # test_table から id が 10 以上のデータを取ってくる | + | # test_tableからidが10以上のデータを取ってくる |
| my $sth = ''; | my $sth = ''; | ||
| - | $sth = $dbh-> | + | $sth = $dbh-> |
| $sth-> | $sth-> | ||
| print " | print " | ||
| my @data = (); | my @data = (); | ||
| - | while ( my $ref = $sth-> | + | while (my $ref = $sth-> |
| - | push @data, $ref; | + | push @data, $ref; |
| } | } | ||
| $sth-> | $sth-> | ||
| - | foreach ( @data ) { | + | foreach (@data) { |
| - | utf8:: | + | utf8:: |
| - | print $_->{'name'}, " | + | print $_->{"name"}, " |
| } | } | ||
| </ | </ | ||
perl/modules/dbdmysql.1529890849.txt.gz · 最終更新: 2018/06/25 10:40 by 127.0.0.1