FeulPHP: データをデータベースにインサートする方法
まずORMを元に作ったModelがある。
<?php class Model_Survey extends \Orm\Model{ protected static $_table_name = 'Survey'; protected static $_primary_key = array('SurveyId'); protected static $_properties = array( 'SurveyId', 'Q1', 'Q2', 'Q3' ); } ?>
あとはControllerでこのモデルを呼び、行をインサートする。
インサートする方法はいくつかあるが、ここではDBクラスとQuery Builderで行う。
テーブルの詳細
CREATE TABLE `Survey` ( `SurveyId` int(11) NOT NULL, `Q1` varchar(1000) NOT NULL, `Q2` varchar(1000) NOT NULL, `Q3` varchar(1000) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Indexes for dumped tables -- -- -- Indexes for table `Survey` -- ALTER TABLE `Survey` ADD PRIMARY KEY (`SurveyId`);
インサートするテーブルを設定する。
<?php $query = DB::insert('Survey'); ?>
テーブルの列を設定する。
<?php // Set the columns $query->columns(array( 'SurveyId', 'Q1', 'Q2', 'Q3' )); ?>
MySQLにインサートしたい情報は以下の通り。
<?php // Set the values $query->values(array( time(), "A", "B", "C", )); ?>
MySQLにインサートしたい情報がいっぱいある場合は以下の通り。
<?php // Set the values $query->values(array( time(), "A", "B", "C", )); $query->values(array( time(), "A", "A", "C", )); $query->values(array( time(), "B", "B", "C", )); ?>
最後は実行だけ。
<?php $result = DB::query($query)->as_object('Model_Survey')->execute(); ?>
おしまい