質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

解決済

xxx_id カラムが保存されない

popoko
popoko

総合スコア0

INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

1回答

0評価

2クリップ

1647閲覧

投稿2014/10/17 05:56

ModelクラスにてINSERT処理を行いたいのですが、
なぜか "created_id" と "modified_id" カラムが登録されません。(空白になります。)
これはCakeの命名規則によるものでしょうか?
それとも処理に不備があるのでしょうか?
($this->saveまでの$dataは問題なく"created_id" と "modified_id"データが入っております。)
毎度毎度初歩的な質問をしてしまい申し訳ありませんが、
アドバイス頂けたらと思います。
以下、ソースです。
`

<!-- DB構造 --> <!-- tableName:Test1 -->
t1_code int(5) a/i t1_display_no int(5) t1_option_value varchar(30) created datetime created_id varchar(15) modified timestamp modified_id varchar(15)
<!-- tableName:Test2 -->
t2_code int(5) a/i t2_display_no int(5) t2_option_value varchar(30) created datetime created_id varchar(15) modified timestamp modified_id varchar(15)

<!-- post内容 -->

table_name:文字列
deisplay_no:数値
option_value:文字列
user_id:文字列
`

lang

<?php // Controller/TestController App::uses('AppController', 'Controller'); class TestController extends AppController { public $uses = array('Test1', 'Test2); public function index() {} // 入力フォーム public function add() { if ($this->request->is('post') && isset($this->request->data)) { switch ($this->request->data["tableName"]) { case 'Test1': $this->Test1->insertData($this->request->data); break; case 'Test2': $this->Test2->insertData($this->request->data); break; } return $this->redirect(array('controller' => 'Test', 'action' => 'index')); } } } ?>

lang

<?php // Model/AppModel App::uses('Model', 'Model'); class AppModel extends Model { var $db ; function begin() { $db = ConnectionManager::getDataSource($this->useDbConfig); $db->begin($this); } function commit() { $db = ConnectionManager::getDataSource($this->useDbConfig); $db->commit($this); } function rollback() { $db = ConnectionManager::getDataSource($this->useDbConfig); $db->rollback($this); } } ?>

lang

<?php // Model/Test1 App::uses('AppModel', 'Model'); class Test1 extends AppModel { public function insertData($postData) { $data = array( 't1_display_no' => htmlspecialchars($postData["display_no"], ENT_QUOTES), 't1_option_value' => htmlspecialchars($postData["option_value"], ENT_QUOTES), 'created' => date('Y-m-d H:i:s'), 'created_id' => htmlspecialchars($postData["user_id"], ENT_QUOTES), 'modified' => date('Y-m-d H:i:s'), 'modified_id' => htmlspecialchars($postData["user_id"], ENT_QUOTES) ); $params = array('validate' => false); $this->begin(); try { $this->create(); $this->save($data, $params); } catch (Exception $e) { $this->rollback(); } $this->commit(); } } ?>

lang

<?php // Model/Test1 App::uses('AppModel', 'Model'); class Test2 extends AppModel { public function insertData($postData) { $data = array( 't2_display_no' => htmlspecialchars($postData["display_no"], ENT_QUOTES), 't2_option_value' => htmlspecialchars($postData["option_value"], ENT_QUOTES), 'created' => date('Y-m-d H:i:s'), 'created_id' => htmlspecialchars($postData["user_id"], ENT_QUOTES), 'modified' => date('Y-m-d H:i:s'), 'modified_id' => htmlspecialchars($postData["user_id"], ENT_QUOTES) ); $params = array('validate' => false); $this->begin(); try { $this->create(); $this->save($data, $params); } catch (Exception $e) { $this->rollback(); } $this->commit(); } } ?>

`

<!-- 実行されたクエリ -->

BEGIN
INSERT INTO caketest.test1 (modified, t1_display_no, t1_option_value, created) VALUES ('2014-10-16 20:29:47', 1, 'AAA', '2014-10-16 20:29:47')
COMMIT
`

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Model

MVCモデルの一部であるModelはアプリケーションで扱うデータとその動作を管理するために扱います。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。