- ベストアンサー
CakePHP初心者のためのデータ追加のエラー
- CakePHPで初心者がデータを追加しようとする際にエラーが発生する問題について質問します。
- データのセットやDBへのインサートのコードは正しく行われていますが、実際には何も追加されていないようです。
- エラーメッセージには、INSERT文の実行中にエラーが発生していることが示されていますが、具体的な原因はわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
無事に解決できたようで、何よりです(^^ >「Query: SELECT currval('mobilehellows_id_seq') as max 」を、出させないには、何かフラグを設定するのでしょうか? これはデバッグ用の出力ですね、デフォルト設定のままだと出力されます。 app/config/core.php の45~50行目あたりに Configure::write('debug',2); というのがあると思います。この「2」を「1」以下にすれば出なくなると思いますよー。(^^)
その他の回答 (1)
- manimani2
- ベストアンサー率70% (12/17)
こんにちは。(^^ もしかしたら違うかもしれませんが、参考までに。 モデルの指定が上手くいっていないのかもしれません。 $this->Mobilehellow->save($saveData); でインサートするには、変数$saveDataの配列の中身が、$saveData['モデル名']['そのモデルで使うテーブルのフィールド名']とならなくてはいけなかった気がします。 ここで、「エラーがでない」ということについてですが、このsave()というのは、「入れるべきものがあれば、インサートし、そうでなければスルーしてエラーも出さない」ものです。変数$saveDataの配列内でモデル名が「Mobilehellow」になっていないならば、このエラーが出ないという現象も納得がいくのではないでしょうか? そこで、ちょっと手数ですが、試しに分かりやすい形で試してみると良いと思います(^^)例えば・・・ $saveData['Mobilehellow']['NUM'] = $item[$hscan_offset]['kyujin_syokusyu']; $saveData['Mobilehellow']['JOBTYPE'] = 'kyujin_syokusyu'; $this->Mobilehellow->save($saveData); とういうような3行の形で試してはいかがでしょうか? これでもダメなようならば、他に原因があるかもしれませんが、それがわかっただけでも一歩前進ということで・・・。
お礼
アドバイスいただき、ありがとうございます。 テーブルにシリアル値の列を設定していると、駄目だったようです。 その列を削除したら、うまくいきました。 あと、 「Query: SELECT currval('mobilehellows_id_seq') as max 」 を、出させないには、何かフラグを設定するのでしょうか?
お礼
またまた、ありがとうございます。 カラム データ型 JOBTYPE text REFERENCE_NUMBER text の時、 REFERENCE_NUMBER 10010- 7414601 を探すために、以下のコーディングをしました。 ーーーーーーーーーー $serchData = array("Mobilehellow" => array( "REFERENCE_NUMBER" => trim($item[$hscan_offset]['seirino']), )); $saveData = array("Mobilehellow" => array( "JOBTYPE" => $item[$hscan_offset]['kyujin_syokusyu'], "REFERENCE_NUMBER" => $item[$hscan_offset]['seirino'], )); $data = $this->Mobilehellow->findAll($serchData); if ($data=== false) { $this->Mobilehellow->create(); $this->Mobilehellow->save($saveData); } ーーーーーーーーーーー としたのですが、$dataの戻り値は、FALSEばかりです。 何が、いけないのでしょうか?