Edited at

PHPでデータベース接続


1行で実行する場合


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

・PDOクラス(基底クラス)のインスタンスを作成することで接続が確立します。

基底クラスは、ベースクラス、スーパークラス、親クラスとも言い、元々用意されているクラスのことです。


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,];

■参考

・PHPマニュアル(PDO::setAttribute)

PDO属性の詳細が確認できます。

https://www.php.net/manual/ja/pdo.setattribute.php