※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

SQLインジェクション対策を兼ねたデータベースの使い方を記述します。
主にはPDOを使った方法を記載していきます。ここでは例としてMySQL(UTF-8)を使います。
また、この資料を記述していくにあたり、 DBの場所はlocalhost、ポート番号は3306、データベース名はDBname、ユーザ名はDBuser、パスワードはDBpasswordというものにします。 各自がご利用になるときは適宜置き換えてください。

目次





PDOとは

PDOとは、PHP Data Objectsの略で、phpでデータベースとやりとりする際に利用するメソッドです。 今まではphpでmysql_connect()と接続していましたが、これではMySQLしか利用できません。 PDOを使うことで、どのデータベースを利用する場合でも同じ関数を使うことができるので、データベースを変更したとしても、設定したPDOオブジェクトを作成する時に指定したパラメータをphp.iniで変更すればいいので融通が利きます。

自分のサーバでPDOは使えるのか?

phpが動くサーバでphpinfo()関数を走らせてみて、結果を見てみましょう。

phpプログラム(info.php)

<?php
phpinfo();
?>

と記述し、ブラウザでinfo.phpに行けば確認できます。 以下のようになっていれば使えます。

自分でサーバを管理している人は、設定ファイルphp.iniで設定が必要なので検索してみてください。
(というのは、適当すぎなのでURL紹介しておきます。こちらです。)

PDOでデータベース接続

ではまずはデータベースに接続して、接続できなければエラーを返すプログラムを書きましょう。 ファイル名(なんでもいいけど.php)


<?php

$dsn = 'mysql:dbname=DBname;host=localhost;port=3306;charset=utf8';
$user = 'DBuser';
$password = 'DBpassword';

try{
    $dbh = new PDO($dsn, $user, $password);

    print('接続に成功しました。<br>');

    }
}catch (PDOException $e){
    print('Error:'.$e->getMessage());
    die();
}

$dbh = null;

?>

接続に成功しましたとかえってこればOKです。

添付ファイル