質問編集履歴
2
追記を記載
title
CHANGED
File without changes
|
body
CHANGED
@@ -52,4 +52,34 @@
|
|
52
52
|
2つのテーブルに同時にinsertできれば解決できるのかと考え調べましたが、oracleはinsery allでできるようですがmysqlではそのような機能がないとわかったため断念しました。
|
53
53
|
|
54
54
|
他にどのように調べれば解決できるのか、何が足りないのか、そもそも考え方が合っているかなどを教えていただいたいです。
|
55
|
-
すみませんがアドバイスよろしくお願いします。
|
55
|
+
すみませんがアドバイスよろしくお願いします。
|
56
|
+
|
57
|
+
### 追記
|
58
|
+
現在のSQLコードになります。
|
59
|
+
```
|
60
|
+
$sql = 'INSERT INTO articles (name, content, category_id, user_id, tag_id)
|
61
|
+
VALUES (:name, :content, :category_id, :user_id, :tag_id)';
|
62
|
+
$sth = $pdo -> prepare($sql);
|
63
|
+
$sth -> bindValue(':name', $_SESSION['title'],PDO::PARAM_STR);
|
64
|
+
$sth -> bindValue(':content', $_SESSION['contents'],PDO::PARAM_STR);
|
65
|
+
$sth -> bindValue(':category_id', $_SESSION['category_id'], PDO::PARAM_INT);
|
66
|
+
$sth -> bindValue(':user_id', $_SESSION['user_id'], PDO::PARAM_INT);
|
67
|
+
$sth -> bindValue(':tag_id', $_SESSION['tag_id'], PDO::PARAM_INT);
|
68
|
+
$sth -> execute();
|
69
|
+
```
|
70
|
+
テーブル中身は以下になります。
|
71
|
+
|
72
|
+
- articles
|
73
|
+
```
|
74
|
+
id, name, content, category_id, user_id, tag_id
|
75
|
+
```
|
76
|
+
|
77
|
+
- article_tag
|
78
|
+
```
|
79
|
+
article_id, tag_id
|
80
|
+
```
|
81
|
+
|
82
|
+
- tags
|
83
|
+
```
|
84
|
+
id, name
|
85
|
+
```
|
1
名前付きと疑問符のsql文が逆になっていたため修正しております
title
CHANGED
File without changes
|
body
CHANGED
@@ -22,11 +22,11 @@
|
|
22
22
|
|
23
23
|
疑問符プレースホルダーにした場合
|
24
24
|
```
|
25
|
-
SQLSTATE[
|
25
|
+
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`blog`.`articles`, CONSTRAINT `articles_ibfk_3` FOREIGN KEY (`tag_id`) REFERENCES `tag_article` (`article_id`))
|
26
26
|
```
|
27
27
|
名前付きプレースホルダーにした場合
|
28
28
|
```
|
29
|
-
SQLSTATE[
|
29
|
+
SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
|
30
30
|
```
|
31
31
|
|
32
32
|
### 該当のソースコード
|