「PDOの利用」の編集履歴(バックアップ)一覧はこちら

PDOの利用」(2015/05/25 (月) 23:50:48) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

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

表示オプション

横に並べて表示:
変化行の前後のみ表示: