Zend Framerorkを使う その3
Zend_Db_Table_Abstract
これを使うために、index.phpに追記
<?php require_once 'Zend/Db.php'; $params = array( 'host' => '127.0.0.1', 'username' => 'fuga', 'password' => 'hoge', 'dbname' => 'dbname', 'charset' => 'UTF8' ); $db = Zend_Db::factory('PDO_MYSQL', $params); Zend_Db_Table_Abstract::setDefaultAdapter($db);
modelで実際に使う
insertを取り急ぎ作る
<?php class ShioriMain extends Zend_Db_Table_Abstract { protected $_name = 'shiori_main'; } class MainEdit { public function addData($title, $thema, $startDate, $endDate, $member) { $shiori = new ShioriMain(); $data = array( self::COLUMN_TITLE => $title, self::COLUMN_THEMA => $thema, self::COLUMN_START_DATE => $startDate, self::COLUMN_END_DATE => $endDate, self::COLUMN_MEMBER => $member, self::COLUMN_CREATE_AT => new Zend_Db_Expr('NOW()'), self::COLUMN_UPDATE_AT => new Zend_Db_Expr('NOW()') ); $shiori->insert($data); } }
エラー
The mysql driver is not currently installed
実際に動かそうとしたら、エラー
あらま!というわけでなおす
拡張モジュールのインストール
# pecl install pdo_mysql
phpize: コマンドが見つかりません
動きません。
ビルドツールインストール
phpizeは、phpの拡張モジュールのためのビルドツール
それがないので、インストール
# yum -y install php-devel # pecl install pdo_mysql configure: error: mysql_query missing!?
再度、peclを実行したが、エラー・・・
開発用モジュールインストール
mysql開発用モジュールがインストールされていないので、インストール
# yum -y install php-mysql-devel # yum -y install mysql-devel # pecl install pdo_mysql
今度は成功!
modelでselectもついでに試す
<?php public function getShioriData($id) { $shiori = new ShioriMain(); $select = $shiori->select() ->where('`' . self::COLUMN_ID . '` = ?', $id); $result = $shiori->fetchRow($select); if(empty($result) === false) { $result = $result->toArray(); } return $result; }
動いた動いた。おめでたい。