質問編集履歴
6
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -128,7 +128,7 @@
|
|
128
128
|
|
129
129
|
```
|
130
130
|
---
|
131
|
-
追記:phpは7、mysqlは5.5、model.phpにて$result===falseについては他のブックでも使っており特に問題ありません
|
131
|
+
追記:phpは7、mysqlは5.5、model.phpにてSQL処理後のチェック$result===falseについては他のブックでも使っており特に問題ありません
|
132
132
|
|
133
133
|

|
134
134
|
上のArray([0]=>は$msgに入り、下のArray()は$err_msgに入ってしまいます
|
@@ -146,6 +146,8 @@
|
|
146
146
|
問題:
|
147
147
|
①$err_msgにArray()というデータが入ってしまうため、トランザクションが実行されない
|
148
148
|
②$msgにも…に登録しました!!というメッセージが入ることは良いのですが、Array([0])=>という余計なデータが入ってしまう
|
149
|
+
③$msgも$err_msgどちらも配列となります。またSQL実行する際に初期化しておりますが、
|
149
|
-
|
150
|
+
これらの変数に余計なデータがいったいどこで入るのかわからない状況です。
|
151
|
+
④var_dumpにて初期化した時点ですでに入っている様に思います。
|
150
152
|
※SQLのinsertとupdate文についてはphpmyadminなどで実行すると問題無く追加されます…
|
151
153
|
宜しくお願いいたします
|
5
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -26,6 +26,33 @@
|
|
26
26
|
}
|
27
27
|
|
28
28
|
modelphpで
|
29
|
+
//重複データチェック
|
30
|
+
function check_contract_date($link, $id, $name, $err_msg) {
|
31
|
+
$flg = FALSE;
|
32
|
+
$data[] = "";
|
33
|
+
$count_rows = "";
|
34
|
+
|
35
|
+
$sql = "SELECT * FROM contract_date WHERE id = '$id' AND name = '$name'";
|
36
|
+
|
37
|
+
$result = mysqli_query($link, $sql);
|
38
|
+
|
39
|
+
if ($result === false) {
|
40
|
+
$err_msg[] = 'SQLに失敗しました!';
|
41
|
+
} else {
|
42
|
+
$count_rows = mysqli_num_rows($result);
|
43
|
+
while ($row = mysqli_fetch_assoc($result)) {
|
44
|
+
$data[] = $row;
|
45
|
+
}
|
46
|
+
|
47
|
+
if ($count_rows > 0) {
|
48
|
+
$flg = TRUE;
|
49
|
+
} else {
|
50
|
+
$flg = FALSE;
|
51
|
+
}
|
52
|
+
}
|
53
|
+
return array($flg, $err_msg);
|
54
|
+
}
|
55
|
+
|
29
56
|
//contract_date用登録処理----------------------------------------------------------------------
|
30
57
|
function insert_contract_date($link, $today, $id, $name, $mail, $fusaick, $created_date, $corporation, $department, $hire_date, $manager, $telephone, $bring1, $bring2, $bring3, $login_name, $err_msg) {
|
31
58
|
$err_msg= [];
|
4
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -104,7 +104,7 @@
|
|
104
104
|
追記:phpは7、mysqlは5.5、model.phpにて$result===falseについては他のブックでも使っており特に問題ありません
|
105
105
|
|
106
106
|

|
107
|
-
上のArray([0]=>は$msgに入
|
107
|
+
上のArray([0]=>は$msgに入り、下のArray()は$err_msgに入ってしまいます
|
108
108
|
---
|
109
109
|
追記2:返信まことにありがとうございます。
|
110
110
|
分かりにくい記載になり大変申し訳ありません。
|
3
修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
+
```ここに言語を入力
|
1
|
-
|
2
|
+
メインphpで
|
2
3
|
// 更新系の処理を行う前にトランザクション開始(オートコミットをオフ)
|
3
4
|
mysqli_autocommit($link, false);
|
4
5
|
|
@@ -23,7 +24,8 @@
|
|
23
24
|
// 処理取消
|
24
25
|
mysqli_rollback($link);
|
25
26
|
}
|
27
|
+
|
26
|
-
|
28
|
+
modelphpで
|
27
29
|
//contract_date用登録処理----------------------------------------------------------------------
|
28
30
|
function insert_contract_date($link, $today, $id, $name, $mail, $fusaick, $created_date, $corporation, $department, $hire_date, $manager, $telephone, $bring1, $bring2, $bring3, $login_name, $err_msg) {
|
29
31
|
$err_msg= [];
|
@@ -84,7 +86,8 @@
|
|
84
86
|
return array($msg, $err_msg);
|
85
87
|
}
|
86
88
|
|
89
|
+
|
87
|
-
|
90
|
+
上記を実行するとメインの最終トランザクション確定部分で$err_msgにArray()…みたいなのが必ず入ってしまう
|
88
91
|
ちなみに$msgにもArray()が入ってしまいます。
|
89
92
|
|
90
93
|
// トランザクション成否判定
|
@@ -96,12 +99,13 @@
|
|
96
99
|
mysqli_rollback($link);
|
97
100
|
}
|
98
101
|
|
99
|
-
|
102
|
+
```
|
103
|
+
---
|
100
104
|
追記:phpは7、mysqlは5.5、model.phpにて$result===falseについては他のブックでも使っており特に問題ありません
|
101
105
|
|
102
106
|

|
103
107
|
上のArray([0]=>は$msgに入いり、下のArray()は$err_msgに入ってしまいます
|
104
|
-
|
108
|
+
---
|
105
109
|
追記2:返信まことにありがとうございます。
|
106
110
|
分かりにくい記載になり大変申し訳ありません。
|
107
111
|
|
2
追記2
title
CHANGED
File without changes
|
body
CHANGED
@@ -100,4 +100,21 @@
|
|
100
100
|
追記:phpは7、mysqlは5.5、model.phpにて$result===falseについては他のブックでも使っており特に問題ありません
|
101
101
|
|
102
102
|

|
103
|
-
上のArray([0]=>は$msgに入いり、下のArray()は$err_msgに入ってしまいます
|
103
|
+
上のArray([0]=>は$msgに入いり、下のArray()は$err_msgに入ってしまいます
|
104
|
+
|
105
|
+
追記2:返信まことにありがとうございます。
|
106
|
+
分かりにくい記載になり大変申し訳ありません。
|
107
|
+
|
108
|
+
やりたい事:
|
109
|
+
①DBに同ID同氏名のキーを使い重複があるかチェックをします
|
110
|
+
②重複データがある場合、update処理、ない場合insert処理をおこないたい
|
111
|
+
③その際、model.phpにてSQLの処理をおこないエラーが無く実行されれば$msgへ完了メッセージ代入
|
112
|
+
④メイン.phpにもどりSQL処理にてエラーが無い($err_msgが空)の場合、トランザクション確定
|
113
|
+
⑤最後に完了処理のためview.phpに戻り$msgのメッセージを表示して完了を予定しております
|
114
|
+
|
115
|
+
問題:
|
116
|
+
①$err_msgにArray()というデータが入ってしまうため、トランザクションが実行されない
|
117
|
+
②$msgにも…に登録しました!!というメッセージが入ることは良いのですが、Array([0])=>という余計なデータが入ってしまう
|
118
|
+
③これらの余計なデータがどこで入るのかわからない。
|
119
|
+
※SQLのinsertとupdate文についてはphpmyadminなどで実行すると問題無く追加されます…
|
120
|
+
宜しくお願いいたします
|
1
追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -94,4 +94,10 @@
|
|
94
94
|
} else {
|
95
95
|
// 処理取消
|
96
96
|
mysqli_rollback($link);
|
97
|
-
}
|
97
|
+
}
|
98
|
+
|
99
|
+
|
100
|
+
追記:phpは7、mysqlは5.5、model.phpにて$result===falseについては他のブックでも使っており特に問題ありません
|
101
|
+
|
102
|
+

|
103
|
+
上のArray([0]=>は$msgに入いり、下のArray()は$err_msgに入ってしまいます
|