LoginSignup
1
1

More than 3 years have passed since last update.

PHPでデータベース接続

Last updated at Posted at 2019-10-08

1行で実行する場合


$dbh = new PDO ('mysql:dbname=データベース名;host=ホスト名またはIPアドレス;charset=utf8;',ユーザ,パスワード,PDO属性);

・PDOクラス(基底クラス)のインスタンスを作成することで接続が確立します。
基底クラスは、ベースクラス、スーパークラス、親クラスとも言い、PHPで元々用意されているクラスのことです。

2つのファイルで実行する場合

file1.php


// file2.phpを読み込む
require ('file2.php');

// file2.php内の関数を使用して接続を確立する
$dbh = 関数();

file2.php


function 関数(){
$dsn = 'mysql:dbname=データベース名;host=ホスト名またはIPアドレス;charset=utf8';
$user = 'ユーザ';
$pass = 'パスワード';
$options = 'PDO属性'

$dbh = new PDO($dsn, $user, $pass, $options);
return $dbh;
}

・$dsnのDSNはData Souse Nameの略であり、PHPではデータベース接続指定書式のことです。
・関数内でreturnすると、その関数の実行を停止し、引数を関数の値として返します。
この値をfile1.phpが受け取り、使用することで接続を確立します。
・returnは関数ではなく言語構造なので引数の指定に()は不要です。

PDO属性は以下のように指定します。


$options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,属性2,属性3,);
または
$options = [PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT,属性2,属性3,];

// PDO属性を$dbh内の$optionsではなく
$PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

■参考
・PHPマニュアル(PDO::setAttribute)
PDO属性の詳細が確認できます。
https://www.php.net/manual/ja/pdo.setattribute.php

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1