ボム君.com

Masa's blog

今まで学んできたITスキルを主に。

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();
   
?>


おしまい