#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