「データベース接続PDO編」の編集履歴(バックアップ)一覧に戻る
データベース接続PDO編 - (2008/11/02 (日) 04:25:52) の編集履歴(バックアップ)
データベース接続PDO編
- PDOを使用したPHPからmysqlの接続
- extension=php_pdo_dll を使用できるように、php.iniファイルを修正する必要がある
- データベースの抽象化で、急なサーバ変更時(mysql→postgreSqlなど)に大きくソース修正の必要無し
- PEAR::DBなど他にもDB抽象化レイヤーはあるが、それらに比べて処理速度が早い
基本的なフォーマット |
<?php |
PDOExceptionクラスの主なメソッド
メソッド | 概要 |
getFile() | 例外が発生したファイル名を取得 |
getLine() | 例外が発生した行番号を取得 |
getCode() | エラーコードを取得 |
getMessage() | 例外メッセージを取得 |
getTraceAsString() | バックトレースを文字列として取得 |
getAttribute / setAttribute メソッドで参照/設定可能な接続パラメータ
定数 | 概要 |
PDO::ATTR_AUTOCOMMIT | オートコミットを有効化(0 | 1) |
PDO::ATTR_TIMEOUT | タイムアウト値 |
PDO::ATTR_ERRMODE | エラーモード |
PDO::ERRMODE_SILENT | エラー出力を行わない |
PDO::ERRMODE_WARNING | 警告を出力 |
PDO::ERRMODE_EXCEPTION | PDOExceptionを発生 |
PDO::ATTR_SERVER_VERSION | サーバのバージョン |
PDO::ATTR_CLIENT_VERSION | クライアントのバージョン |
PDO::ATTR_SERVER_INFO | サーバ情報 |
PDO::ATTR_CONNECTION_STATUS | サーバへの接続状態 |
PDO::ATTR_CASE | カラム名を大文字/小文字に変換 |
PDO::CASE_LOWER | カラム名を小文字に変換 |
PDO::CASE_NATURAL | ドライバからの戻り値のまま |
PDO::CASE_UPPER | カラム名を大文字に変換 |
PDO::ATTR_CURSOR_NAME | カーソル名 |
PDO::ATTR_ORACLE_NULLS | 空文字をNULLに変換するか(0 | 1) |
PDO::ATTR_PERSISTENT | 接続的持続を有効にするか |
insert処理サンプル
insert_form.php |
<html> <head><title>メンバー登録</title></head> <body> <form method="post" action="insMenber.php"> <talbe border="0"> <tr> <th>名前:</th> <td><input trype="text" name="name" size="15" maxlength="50"></td> </tr> </table> </form> </body> </html> |
mysql_connect関数 | |
機能と返り値 | mysqlに接続。接続に成功すると、mysqlから接続IDが返されます。失敗した場合はfalse |
引数 | 接続するためには、[mysqlサーバ名][ログインユーザ名][ユーザのパスワード]の順番で指定 |
$con = mysql_connect(サーバ名, ユーザ名, パスワード); |
mysql_select_db関数 | |
機能と返り値 | 複数あるデータベースから、処理する1つのデータベースを選択 |
引数 | 第一引数に選択するデータベース名。第二引数に、mysql_connectで返されたmysql接続ID(省略可能) |
$selectDB = mysql_select_db(データベース名, 接続情報); |
mysql_query関数 | |
機能と返り値 | sql文を発行。select文では、取得された結果セットのIDが返される。insert / update / delete 文では、成功時は true、失敗時は false |
引数 | 第一引数にsql文の文字列を指定。第二引数に、mysql_connectで返されたmysql接続ID(省略可能) |
mysql_query('set names UTF-8'); //読み込み・書き込み用文字コード $rst = mysql_query(sql文); |
mysql_num_rows関数 | |
機能と返り値 | mysql_query関数で発行したselect文より、何レコードのデータがあるかを返す |
引数 | mysql_query関数で返された結果セットIDを指定 |
$rst = mysql_query(sql文); $selectCnt = mysql_num_rows($rst); echo $selectCnt; |
mysql_fetch_array関数 | |
機能と返り値 | mysql_query関数を使用してselect文を発行した返り値の結果セットから、1レコード文を取り出します。返り値を変数に代入することにより、取り出されたデータは自動的に連想配列または数値インデックスの配列として格納される。$変数名[フィールド名]という構文で連想配列としてデータを取得できる |
引数 |
第一引数に、mysql_query関数で返された結果セットID。第二引数に、取得された1レコード文のデータをどのように変数に格納するか指定する。 |
$rst = mysql_query(sql文); while ($col = mysql_fetch_array($rst)) { echo $col['id']; echo $col['name']; echo $col['mail'] } |
mysql_free_result関数 | |
機能と返り値 | mysql_query関数で取得した結果セットを破棄して、メモリを解放する。成功時は true、失敗時は false |
引数 | mysql_query関数で返された結果セットIDを指定 |
$rst = mysql_query(sql文); $rst = mysql_free_result($tst); |
mysql_close関数 | |
機能と返り値 | mysqlとの接続解除。成功時は true、失敗時は false |
引数 | mysql_connect関数で返された接続IDを指定 |
$con = mysql_connect(サーバ名, ユーザ名, パスワード); mysql_close($con); |