} echo "</table>"; $this->pdo_object = null; } catch (PDOException $e) { // エラーメッセージ echo $e->getMessage(); exit; } } } // -------------------------↑Hunmanクラス----------------------------------------------------- $human = new Human("OBJ2human"); $station = new Human("OBJ2station"); $human->load(); $human->show(); $station->load(); $station->show(); // class Station extends base{ // private $table; // function __construct($tablename){ // $this->table=$tablename; // } // function load(){ // } // function show(){} // } // ステートメントハンドラを実行した時に返ってくるものが何なのか理解していない。 // 例えば、prepareを使用した場合は、その段階でステートメントハンドラ用の変数に代入している、 // queryを使用した場合は、実行した段階でステートメントハンドラが命令を実行してしまっているので、 // その段階でステートメントハンドラ用の変数に代入するしかないのだが、明らかに、この二つは違う段階の処理結果が入っている。 // 具体例を挙げると、prepareは下記のようになる
$query = $pdo_object->prepare("select * from {$this->table}"); $query->execute(); } //Stationクラス:表示の関数 public function show() { try { $pdo_object = new PDO('mysql:host=localhost;dbname=Challenge_db;charset=cp932', 'kato', 'kr890122'); } catch (PDOException $Exception) { die('接続に失敗しました:' . $Exception->getMessage()); } $query = $pdo_object->prepare("select * from {$this->table}"); $query->execute(); while ($row = $query->fetch(PDO::FETCH_OBJ)) { echo $row->stationID . "<br>"; echo $row->stationName . "<br>"; } } //Stationクラス:初期化処理 public function __construct() { $this->table = 'station'; } } $user = new Human(); $user->load(); $user->show(); $station = new Station(); $station->load(); $station->show(); $pdo_object = null;