私の問題に関する他の多くの投稿を読みましたが、解決方法がわかりません:
2 つのテーブルを読み取り、それらを 1 つの一時テーブルに結合したいと考えています。
次のコードを持つ他のユーザーのように、私は試しました:
$tmpModel = 'ListTransactions';
$tmpTable = 'list_transactions';
$this->ListTransactions->query("CREATE TEMPORARY TABLE `".$tmpTable ."`
(
`id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`sum` decimal(10,2) NOT NULL,
`date` datetime NOT NULL,
`class` enum('Level1','Level2','Level3','Out') NOT NULL DEFAULT 'Out',
`program_id` int(11) NULL,
`program_title` varchar(150) NULL,
PRIMARY KEY (`id`)
)"
);
App::import('Model', $tmpModel);
$this->loadModel($tmpModel);
テーブルの作成はtrueを返すので、テーブルが作成されたと思います。しかし、データを保存しようとすると、「テーブルが存在しません」というエラーが表示されます。
foreach ($payments as $payment) {
$this->ListTransactions->create();
$this->ListTransactions->set(array(
'id' => $payment['Payments']['id'],
'sum' => $payment['Payments']['sum'],
'date' => $payment['Payments']['check_date'],
'class' => 'Out',
'user_id' => $UserId
));
$this->ListTransactions->save();
}
Error: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'list_transactions' doesn't exist
SQL Query: SELECT COUNT(*) AS `count` FROM `list_transactions` AS `ListTransactions` WHERE `ListTransactions`.`id` = '1'
助けてください :(
Mさんはじめまして。