Perl入門ゼミスマートフォン用の表示で見るPerl入門ゼミこの広告は、90日以上更新していないブログに表示しています。2016-11-22MySQLとの連携Perl›データベース›herePerlで「MySQL」を利用する方法を解説します。DBIとDBIの解説まずMySQLを扱う基本的な知識として、DBIとDBIというものについて解説します。プログラムからデータベースに接続する場合は、DBIというものを使用するのが一般的です。実際のRDBMSとのやりとりは、DBDを通して行われます。DBIDBIとは、RDBMS(リレーショナルデータベース管理システム)に依存しないAPIのことです。SQLなどがありますが、別々の人が作ったものですので、利用方法は少しづつ異なります。DBIを使用すれば、異なるベータベースに共通の記述で、接続したり、SQLをリクエストしたりできます。DBIPerlに同名のモジュールがあるのでインストールします。DBDDBIは関数を提供しますが、実際は内部でDBDがデータベースとやり取りを行っています。DBDには、MySQL用、PostgreSQL用、Oracle用,SQLite用などさまざまな種類があります。MySQL用のDBDをインストールします。MySQLがインストールされていることが必要です。DBD::mysqlDBIとDBDとデータベースサーバのやり取りのイメージDBIというのは、どのデータベースに接続するときも変わりません。DBIはデータベースに依存しないように作られた接続のための関数の集まりだからです。DBDというのが、データベースと実際にデータをやり取りをします。|-------------|MySQLサーバーへ接続するMySQLサーバに接続するにはconnectメソッドを使用します。$password);のようにします。ポート番号も指定することができます。$password);データベースハンドルconnectメソッドは、データベースの操作に利用するデータベースハンドルというものを戻り値に返却します。データベースハンドルを使用して、MySQLサーバとやり取りします。エラー処理データベース名が間違っていたり、パスワードが間違っていたり、何らかの理由でデータベースに接続できない場合は、戻り値にundefが返却されます。そのときのエラーの内容は、$DBI::errstr;で取得できます。errは数字、errstrには、エラーの内容が入っています。データベースはプログラムの外部にあるシステムですので、エラー処理は必須です。最初のサンプルでは、エラー処理を行っていませんが必ず、エラー処理を行います。$DBI::errstr";現在時刻をMySQLの日付時刻型に変換する現在時刻をMySQLの日付時刻型に変換するにはlocaltime関数とstrftime関数を使用します。localtime);「MySQL::Diff」モジュールで「データベースの定義の差分」を抽出するMySQLのデータベースの差分から、差分をなくすようなコマンドを自動生成するツールを探していたらMySQL::Diffモジュールを発見した。このモジュールにはmysqldiffというコマンドラインツールがついているので、通常はこちらを使うのが良いみたい。開発環境と本番環境の差分を埋めるのにとても役立つ。すべての差分を表示してくれるわけではなく、テーブル定義に関する部分だけのようなので、トリガやインデックスについては、自分で設定する必要があるようです。ドキュメントにはオプションの説明がないようなので、--helpコマンドで確認できる。--helpDBD::mysqlをインストールするためにはmysql-develが必要PerlでDBIからMySQLに接続しようと思う場合はDBD::mysqlというモジュールが必要になります。このモジュールは、C言語のライブラリに依存しており、単独ではインストールが失敗します。Hat系のOSであればmysql-develというパッケージをインストールしておく必要があります。mysql-devel「mysql-devel」がインストールされるとDBD::mysqlのインストールは成功するようになります。ユーザー環境にPerlをインストールする月別アーカイブはてなブログをはじめよう!perlcodesampleさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。