dari88's diary

これから趣味にするプログラミング/PHP/javascript/kohana/CMS/web design/

kohanaのテスト2の続き・・・PHPで直接データベースを操作してみる

PHPで直接データベースを操作するコードを書いても kohana は動くんだろうか?・・・と思って書いてみたら、ちゃんと動きました。当たり前か?・・・(^^;;;

<手順>
・application/classes/model/test2 にメソッド getData2() を追加した。

<?php

defined('SYSPATH') or die('No direct script access.');

class Model_Test2 extends Model_Database {

    public function __construct() {
        parent::__construct();
    }

    public function getData() {
        $sql = "select id,name,address,tel from test2 order by id ASC";
        $result = $this->_db->query(Database::SELECT, $sql, true);
        return $result;
    }

    public function getData2() {

        define('DBTYPE', 'mysql');
        define('DBNAME', 'kohana');
        define('DBHOST', 'localhost');
        define('DBUSER', 'root');
        define('DBPASS', '********');      // パスワード
        define('DSN', DBTYPE . ":dbname=" . DBNAME . ";host=" . DBHOST . ";charset=utf8");

        try {

            $pdo = new PDO(DSN, DBUSER, DBPASS, array(PDO::ATTR_EMULATE_PREPARES => false));
            $pdo->query("SET NAMES utf8");
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $rows = $pdo->query("SELECT id,name,address,tel FROM test2");

            while ($row = $rows->fetch(PDO::FETCH_OBJ)) {
                $rowarray[] = $row;
            }
            return $rowarray;
            
        } catch (PDOException $e) {
            exit("データベース処理エラー" . $e);
        }

    }

}

?>

・パスワードとかちゃんと書かないと動きません。
・application/classes/controller/test2 の9行目を変更する。

         $result = $dat->Getdata2();

 これで localhost/test2 にアクセスすると同じ結果が表示されます。getData() と getData2() を比較すると、コーディングの手間がえらく違います。なるほどね~・・・。