###わからないこと
現在バルクインサートを作成しておりますが、値をDB内に入れることができておりません。
エラーを発生していないので、その原因についてつかみかねております。
どうかご教授いただけないでしょうか?
###コード
php
1public function savemeta($project) 2 { 3 $data = date('Y-m-d H:i:s'); 4 $stmt = self::$_pdo->prepare("INSERT INTO ct_meta ( 5 item_id, 6 value, 7 created_at, 8 updated_at 9 ) 10 VALUES 11 ( 12 :item_id, 13 :value, 14 :created_at, 15 :updated_at)" 16 ); 17 $jmetaValues[] = array('item_id' => 1, 'value' => $project['jobType']); 18 $jmetaValues[] = array('item_id' => 3, 'value' => $project['jobDescription']); 19 $jmetaValues[] = array('item_id' => 4, 'value' => $project['ensen']); 20 $jmetaValues[] = array('item_id' => 5, 'value' => $project['place']); 21 $jmetaValues[] = array('item_id' => 6, 'value' => $project['fee']); 22 $jmetaValues[] = array('item_id' => 7, 'value' => $project['commutingAllowance']); 23 $jmetaValues[] = array('item_id' => 8, 'value' => $project['workDays']); 24 $jmetaValues[] = array('item_id' => 9, 'value' => $project['weekday']); 25 $jmetaValues[] = array('item_id' => 10, 'value' => $project['workTime']); 26 27 foreach ($jmetaValues as $row) { 28 $stmt->bindParam('item_id', $row['item_id'], PDO::PARAM_STR); 29 $stmt->bindValue('value', $row['value'], PDO::PARAM_INT); 30 $stmt->bindParam('created_at', $date, PDO::PARAM_STR); 31 $stmt->bindParam('updated_at', $date, PDO::PARAM_STR); 32 $stmt->execute(); 33 }
###テーブル構造
php
1public function createCtJmetaTable() 2 { 3 $sql = "CREATE TABLE IF NOT EXISTS `ct_meta` (" 4 ."`id` int(10) unsigned NOT NULL AUTO_INCREMENT," 5 ."`job_id` bigint(20) unsigned NOT NULL," 6 ."`item_id` bigint(20) unsigned NOT NULL," 7 ."`value` longtext COLLATE utf8_unicode_ci NOT NULL," 8 ."`created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'," 9 ."`updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'," 10 ."PRIMARY KEY (`id`)," 11 ."KEY `jmeta_job_id_foreign` (`job_id`)," 12 ."KEY `jmeta_jitem_id_foreign` (`item_id`)," 13 ."CONSTRAINT `jmeta_job_id_foreign` FOREIGN KEY (`job_id`) REFERENCES `ct_jobs` (`id`)" 14 .") ENGINE=InnoDB AUTO_INCREMENT=3102665 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;"; 15 $stmt = self::$_pdo->prepare($sql); 16 $stmt -> execute(); 17 }
###やりたいこと
DBにデータを保存することですが、データが入っているもののみを保存しようとしています。
しかし、$stmt->execute();にvar_dumpをかけたところ、falseが返ってきます。
①$projectがありますが、ちゃんと値が入っており、配列名も間違っておりません
②カラムはすべてプライマリではありません。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/09/10 11:58
2017/09/10 12:44