質問編集履歴

2

コードと出力をブロック分けして、Exceptionで出力されたメッセージを追記しました。

2020/11/19 06:09

投稿

EbiTT
EbiTT

スコア12

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,11 @@
12
12
 
13
13
  ```
14
14
 
15
- エラーメッセージていませんが、SQL送信後のDBでの更新処理が行わていせん
15
+ try-catchしたところこのようなメッセージ力されました
16
+
17
+ SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute
18
+
19
+ SQL送信後のDBでの更新処理が行われていません。
16
20
 
17
21
  $stmt_modify0と$stmt_modify1の2つで更新処理が行われませんでした。
18
22
 
@@ -28,7 +32,7 @@
28
32
 
29
33
 
30
34
 
31
- ```PHP
35
+ ```PHP(ソースコード)
32
36
 
33
37
  <?php
34
38
 
@@ -39,16 +43,6 @@
39
43
  header("Location:./Login.php");
40
44
 
41
45
  }
42
-
43
- //CREATE TABLEを行う
44
-
45
- CREATE TABLE flowsheet_local (id INT, m_id INT,no INT,char_info VARCHAR,audio VARCHAR)
46
-
47
- //debugDumpParamsで出力されたSQL
48
-
49
- update flowsheet_local set char_info='q' WHERE m_id='28' AND no='1';
50
-
51
- update flowsheet_local set audio='900ab15ef05f5664647e837d9dd45c63.mp3' WHERE m_id='28' AND no='1'
52
46
 
53
47
  // 入力フォームから文字または音声データが入力された後の処理
54
48
 
@@ -114,6 +108,20 @@
114
108
 
115
109
  ```
116
110
 
111
+ ```PHP(出力)
112
+
113
+ //CREATE TABLEを行う
114
+
115
+ CREATE TABLE flowsheet_local (id INT, m_id INT,no INT,char_info VARCHAR,audio VARCHAR)
116
+
117
+ //debugDumpParamsで出力されたSQL
118
+
119
+ update flowsheet_local set char_info='q' WHERE m_id='28' AND no='1';
120
+
121
+ update flowsheet_local set audio='900ab15ef05f5664647e837d9dd45c63.mp3' WHERE m_id='28' AND no='1'
122
+
123
+ ```
124
+
117
125
 
118
126
 
119
127
  ### 試したこと

1

CREATE TABLE とdebugDumpParamsで出力されたSQLを追記しました

2020/11/19 06:09

投稿

EbiTT
EbiTT

スコア12

test CHANGED
File without changes
test CHANGED
@@ -14,9 +14,7 @@
14
14
 
15
15
  エラーメッセージは出ていませんが、SQL送信後のDBでの更新処理が行われていません。
16
16
 
17
- ただ、ソースコード中の$stmt_modify_minorsでは正常に更新が行われ、
18
-
19
- $stmt_modify0と$stmt_modify1の2つで更新処理が行われませんでした。
17
+ $stmt_modify0と$stmt_modify1の2つで更新処理が行われませんでした。
20
18
 
21
19
  汚いコードであることは重々承知していますが、
22
20
 
@@ -42,6 +40,16 @@
42
40
 
43
41
  }
44
42
 
43
+ //CREATE TABLEを行う
44
+
45
+ CREATE TABLE flowsheet_local (id INT, m_id INT,no INT,char_info VARCHAR,audio VARCHAR)
46
+
47
+ //debugDumpParamsで出力されたSQL
48
+
49
+ update flowsheet_local set char_info='q' WHERE m_id='28' AND no='1';
50
+
51
+ update flowsheet_local set audio='900ab15ef05f5664647e837d9dd45c63.mp3' WHERE m_id='28' AND no='1'
52
+
45
53
  // 入力フォームから文字または音声データが入力された後の処理
46
54
 
47
55
  if (isset($_POST['chars'])) :
@@ -52,17 +60,13 @@
52
60
 
53
61
  $sql_modify1 = 'update flowsheet_local set audio=? WHERE m_id=? AND no=?';
54
62
 
55
- $sql_modify_minors = 'update m_ab_local set winner=? WHERE id=?;update m_ab_local set judges=? WHERE id=?;update t_abst_local set topic=? WHERE id=?';
63
+
56
64
 
57
65
  $stmt_modify0 = $pdo->prepare($sql_modify0);
58
66
 
59
67
  $stmt_modify1 = $pdo->prepare($sql_modify1);
60
68
 
61
- $stmt_modify_minors = $pdo->prepare($sql_modify_minors);
62
-
63
69
  // DBを更新するSQL
64
-
65
- $stmt_modify_minors->execute(array($_POST['winner'], $_SESSION['m_id'], $_POST['judges'], $_SESSION['m_id'], $_POST['resolved'], $_SESSION['abst_id']));
66
70
 
67
71
  $i = 1;
68
72