いつもお世話になっております。
$idと$active_datetime_strがすでに存在していればUPDATE、存在していなければINSERTしたいです。下記コードを実行しても、常にINSERTしてしまいます。ご教示いただけますようよろしくお願いいたします。
sql
1CREATE TABLE `schedule` ( 2 `id` varchar(20) NOT NULL, 3 `datetime` datetime NOT NULL, 4 `schedule` tinyint(1) NOT NULL 5)
php
1function update_schedule($dbh, $id, $set_schedule){ 2$active_datetime_str = get_active_datetime_str(); 3$cnt = count($active_datetime_str); 4for ($i=0; $i < $cnt; $i++){ 5$sql = <<<SQL 6INSERT INTO `schedule` 7VALUES (:id, :active_datetime_str, :set_schedule) 8ON DUPLICATE KEY UPDATE schedule = VALUES(schedule) 9SQL; 10// PDO::PARAM_STR-->プリペアドステートメント 11$stmt = $dbh->prepare($sql); 12// SQLに変数を代入 13$stmt->bindValue(':id', $id, PDO::PARAM_STR); 14$stmt->bindValue(':active_datetime_str', $active_datetime_str[$i], PDO::PARAM_STR); 15$stmt->bindValue(':set_schedule', $set_schedule[$i], PDO::PARAM_STR); 16if(!$stmt->execute()){ 17return FALSE; 18} 19} 20return TRUE; 21}
回答1件
あなたの回答
tips
プレビュー