質問編集履歴
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -2,24 +2,6 @@
|
|
2
2
|
|
3
3
|
$idと$active_datetime_strがすでに存在していればUPDATE、存在していなければINSERTしたいです。下記コードを実行しても、常にINSERTしてしまいます。ご教示いただけますようよろしくお願いいたします。
|
4
4
|
|
5
|
-
```mysql
|
6
|
-
for ($i=0; $i < $cnt; $i++){
|
7
|
-
$sql = <<<SQL
|
8
|
-
INSERT INTO `schedule` (`id`, `datetime`,`schedule`)
|
9
|
-
VALUES ('{$id}', '{$active_datetime_str[$i]}', '{$set_schedule[$i]}')
|
10
|
-
ON DUPLICATE KEY UPDATE `id` = VALUES(`id`), `datetime` = VALUES(`datetime`)
|
11
|
-
SQL;
|
12
|
-
// PDO::PARAM_STR-->プリペアドステートメント
|
13
|
-
$stmt = $dbh->prepare($sql);
|
14
|
-
// // SQLに変数を代入
|
15
|
-
// $stmt->bindValue(':id', $id, PDO::PARAM_STR);
|
16
|
-
if(!$stmt->execute()){
|
17
|
-
return FALSE;
|
18
|
-
}
|
19
|
-
}
|
20
|
-
return TRUE;
|
21
|
-
}
|
22
|
-
```
|
23
5
|
```sql
|
24
6
|
CREATE TABLE `schedule` (
|
25
7
|
`id` varchar(20) NOT NULL,
|
2
修正後
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,4 +26,27 @@
|
|
26
26
|
`datetime` datetime NOT NULL,
|
27
27
|
`schedule` tinyint(1) NOT NULL
|
28
28
|
)
|
29
|
+
```
|
30
|
+
```php
|
31
|
+
function update_schedule($dbh, $id, $set_schedule){
|
32
|
+
$active_datetime_str = get_active_datetime_str();
|
33
|
+
$cnt = count($active_datetime_str);
|
34
|
+
for ($i=0; $i < $cnt; $i++){
|
35
|
+
$sql = <<<SQL
|
36
|
+
INSERT INTO `schedule`
|
37
|
+
VALUES (:id, :active_datetime_str, :set_schedule)
|
38
|
+
ON DUPLICATE KEY UPDATE schedule = VALUES(schedule)
|
39
|
+
SQL;
|
40
|
+
// PDO::PARAM_STR-->プリペアドステートメント
|
41
|
+
$stmt = $dbh->prepare($sql);
|
42
|
+
// SQLに変数を代入
|
43
|
+
$stmt->bindValue(':id', $id, PDO::PARAM_STR);
|
44
|
+
$stmt->bindValue(':active_datetime_str', $active_datetime_str[$i], PDO::PARAM_STR);
|
45
|
+
$stmt->bindValue(':set_schedule', $set_schedule[$i], PDO::PARAM_STR);
|
46
|
+
if(!$stmt->execute()){
|
47
|
+
return FALSE;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
return TRUE;
|
51
|
+
}
|
29
52
|
```
|
1
テーブル構造の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,4 +19,11 @@
|
|
19
19
|
}
|
20
20
|
return TRUE;
|
21
21
|
}
|
22
|
+
```
|
23
|
+
```sql
|
24
|
+
CREATE TABLE `schedule` (
|
25
|
+
`id` varchar(20) NOT NULL,
|
26
|
+
`datetime` datetime NOT NULL,
|
27
|
+
`schedule` tinyint(1) NOT NULL
|
28
|
+
)
|
22
29
|
```
|