SQLインジェクション対策を兼ねたデータベースの使い方を記述します。
主にはPDOを使った方法を記載していきます。ここでは例としてMySQL(UTF-8)を使います。
また、この資料を記述していくにあたり、
DBの場所はlocalhost、ポート番号は3306、データベース名はDBname、ユーザ名はDBuser、パスワードはDBpasswordというものにします。
各自がご利用になるときは適宜置き換えてください。
目次
PDOとは、PHP Data Objectsの略で、phpでデータベースとやりとりする際に利用するメソッドです。
今まではphpでmysql_connect()と接続していましたが、これではMySQLしか利用できません。
PDOを使うことで、どのデータベースを利用する場合でも同じ関数を使うことができるので、データベースを変更したとしても、設定したPDOオブジェクトを作成する時に指定したパラメータをphp.iniで変更すればいいので融通が利きます。
phpが動くサーバでphpinfo()関数を走らせてみて、結果を見てみましょう。
phpプログラム(info.php)
<?php phpinfo(); ?>
と記述し、ブラウザでinfo.phpに行けば確認できます。 以下のようになっていれば使えます。
自分でサーバを管理している人は、設定ファイルphp.iniで設定が必要なので検索してみてください。
(というのは、適当すぎなのでURL紹介しておきます。こちらです。)
ではまずはデータベースに接続して、接続できなければエラーを返すプログラムを書きましょう。 ファイル名(なんでもいいけど.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です。