PDOでMySQLに接続する

PDO

PDOとは

10数年前に初めてPHPに触れた際には、MySQLへの接続はmysql_connect関数を使って接続していました。その後、PHPはアップデートされ、mysql_connect関数はPHP5.5で非推奨、PHP7で使えなくなりました。
現在は、mysqli関数またはPDOのいずれかをつかってMySQLに接続します。

PDOは標準でPHPに組み込まれているので、PHP5.1以降であれば何もせずに利用できます。

PDOのメリットは、
「使用しているデータベースが何であるかにかかわらず、同じ 関数を使用してクエリの発行やデータの取得が行える」
https://www.php.net/manual/ja/intro.pdo.php
ことにより、MySQL以外のデータベースにも原則は同じ記述で接続できるようです。

また、SQLインジェクション対策としてPDOのprepareメソッドを利用できることもメリットに感じます。

PDOを使ってレンタルサーバー(エックスサーバー)に接続

$dsn = 'mysql:dbname=xsvx*******_****;host=*******.xserver.jp;charset=utf8';
$user = 'xsvx*******_****';
$password = '************';
 try {
   $dbh = new PDO($dsn, $user, $password);
 } catch(PDOException $e) {
     echo 'DB接続エラー: ' . $e->getMessage();
 }

参考)PDO::__construct — データベースへの接続を表す PDO インスタンスを生成する
https://www.php.net/manual/ja/pdo.construct.php

安価で比較的安定しているエックスサーバーでの接続例です。エックスサーバーは以前は結構動作も早かったのですが、最近は少し遅くなったような気もします。
上記ファイルを実行して、なにも表示されていなければ、正常に接続できています。

ただ、実際に運用する際にはデータベースの接続情報はpublic_html以下にアップロードするのは危険ですので、public_htmlより上の階層に保存して、適宜読み込むように修正が必要です。

コメント