カテゴリ: PHP
記事投稿日: 2017年3月1日
PDO は、PHP に用意されているデータベース接続クラスです。
SQL インジェクション攻撃に対する最大の防御ですので、これを使うことはデータベース管理において必須です。
※ SQL が得意な人は、SQL を書きたがるかも知れませんが、ウェブの世界ではセキュリティレベルを下げるだけですので、やめましょう。
PHP のフレームワークの多くは、独自の PDO ラッパー(PDO を使いやすくしたライブラリ)を使っています。
どのライブラリを使うにしても、データベースの管理に関する考え方、初期設定は変わりません。
この記事が初心者の方の入門の手引きになれば幸いです。
php.ini の下記がコメントアウトされていればOK
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
以下、4ファイルが拡張モジュールディレクトリ(エクステンションディレクトリ)に含まれていればOK
php_pdo.dll
php_pdo_mysql.dll
php_pdo_pgsql.dll
php_pdo_sqlite.dll
設定ファイルを作っておくと、管理しやすい
define("DB_SERVER", "localhost"); // DBサーバ
define("DB_NAME", "test"); // DB名
define("DB_ID", "root"); // 接続ID
define("DB_PASS", ""); // 接続パス
// MySQL の場合
$dsn = 'mysql:dbname='.DB_NAME.';host='.DB_SERVER.';charset=utf8';
// SQLite の場合
$dsn = 'sqlite:d:??sqlite??test';
// MSSQL の場合
$dsn = 'sqlsrv:server='.DB_SERVER.';Database = '.DB_NAME.'';
// PostgreSQL の場合 (PostgreだけIDとPASSまで記述できる)
$dsn = 'pgsql:dbname=='.DB_NAME.' host=='.DB_SERVER.' port=3306 user='.DB_ID.' pass='.DB_PASS'';
いったん接続したあとは、どのデータベースにおいても同じ書き方で使うことができます。
以上です。
コメントを残す