質問編集履歴

3

コメントを加筆

2022/08/03 07:02

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -98,7 +98,7 @@
98
98
  // $fruits_id を得る
99
99
  if ( $count === 1 ) {
100
100
 
101
- $fruits_id = $dbh->lastInsertId();
101
+ $fruits_id = $dbh->lastInsertId(); // 挿入されたIDを得る
102
102
 
103
103
  } else {
104
104
 
@@ -107,7 +107,7 @@
107
107
  FROM my_fruit
108
108
  WHERE fruits_name = '$fruits_name'
109
109
  ";);
110
- $fruits_id = $sth[0]['ID'];
110
+ $fruits_id = $sth[0]['ID']; // 既存のIDを得る
111
111
 
112
112
  }
113
113
 
@@ -135,6 +135,7 @@
135
135
  /*
136
136
  このときは「フルーツとタグの同じ組み合わせはない」という制限によって
137
137
  「なければINSERT」を達成できる
138
+ (あればエラーになってINSERTされない)
138
139
  */
139
140
  $dbh->query("
140
141
  INSERT INTO my_tag_holders (`fruits_ID`,`tags_ID`)

2

my_tagsのinsert文を修正

2022/08/03 07:00

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -124,10 +124,10 @@
124
124
  $fruits_id = $dbh->lastInsertId();
125
125
 
126
126
  // my_tags を INSERT して、$tag_id を得る
127
- $values = implode(',', array_map( function($tag_name){ return "('$tag_name')"; }, $tag_name_arr ) );
127
+ $tag_name = $tag_name_arr[0]; // コードが煩雑になるのでとりあえず1つだけ
128
128
  $dbh->query("
129
129
  INSERT INTO my_tags (`tag_name`)
130
- VALUES {$values}
130
+ VALUES {'$tag_name'}
131
131
  ";);
132
132
  $tag_id = $dbh->lastInsertId();
133
133
 

1

my_tagsのinsert文を修正

2022/08/03 06:57

投稿

nikuatsu
nikuatsu

スコア177

test CHANGED
File without changes
test CHANGED
@@ -27,7 +27,7 @@
27
27
  -- タグテーブル
28
28
  CREATE TABLE my_tags (
29
29
  `ID` int AUTO_INCREMENT,
30
- `tag_kind_id` int,
30
+ `tag_kind_id` int default 1,
31
31
  `tag_name` varchar(100),
32
32
  PRIMARY KEY(`ID`),
33
33
  UNIQUE u_my_tags_01 (`tag_kind_id`, `tag_name`));
@@ -124,9 +124,10 @@
124
124
  $fruits_id = $dbh->lastInsertId();
125
125
 
126
126
  // my_tags を INSERT して、$tag_id を得る
127
+ $values = implode(',', array_map( function($tag_name){ return "('$tag_name')"; }, $tag_name_arr ) );
127
128
  $dbh->query("
128
129
  INSERT INTO my_tags (`tag_name`)
129
- VALUES ('$tag_name')
130
+ VALUES {$values}
130
131
  ";);
131
132
  $tag_id = $dbh->lastInsertId();
132
133