回答編集履歴
1
二つ目の疑問を追加
test
CHANGED
@@ -84,10 +84,32 @@
|
|
84
84
|
|
85
85
|
|
86
86
|
|
87
|
-
###残った疑問
|
87
|
+
###残った疑問1
|
88
88
|
|
89
89
|
**補足**にある「>`START TRANSACTION`だけ実行してやればCOMMIT文の実行までコミットされず」が正しいならば、**問題の原因**にあるコードでもコミットされないはずで、問題は発生しないはずで、**解決方法**のように`autocommit=0`を指定する必要はないはず。
|
90
90
|
|
91
91
|
|
92
92
|
|
93
93
|
それがなぜ`LOCK TABLES`する場合には`autocommit=0`を指定しなければならなくなるのかが疑問。
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
###残った疑問2
|
98
|
+
|
99
|
+
さらに解決方法でautocommit=0とした直後に、autocommitを確認するとなぜか1になってるという点も疑問…
|
100
|
+
|
101
|
+
```php
|
102
|
+
|
103
|
+
// 解決方法
|
104
|
+
|
105
|
+
$wpdb->query('SET autocommit=0');
|
106
|
+
|
107
|
+
$wpdb->query("LOCK TABLES wp_mains WRITE, wp_sub1s WRITE");
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
// autocommit を確認
|
112
|
+
|
113
|
+
$result['check_autocommit'] = $wpdb->query("SELECT @@autocommit"); // なぜか1になってる
|
114
|
+
|
115
|
+
```
|