質問編集履歴
3
質問補足
test
CHANGED
File without changes
|
test
CHANGED
@@ -53,3 +53,9 @@
|
|
53
53
|
また、あらかじめID=2の行をテーブルに入れておいた場合、ID=1の行が追加されて、「start」が表示されます。
|
54
54
|
|
55
55
|
なぜcatchに引っかからないのでしょうか?心当たりがある方は教えてください。
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
**追記**
|
60
|
+
|
61
|
+
new PDOの部分の修正により、catchはされるようになりましたが、rollbackが効かないようです。具体的には、あらかじめID=2の行をテーブルに入れておいた場合、「start」と「error」が表示されるのですが、データベースにはID=1の行が入ったままになります。
|
2
phpのミスを修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -6,7 +6,9 @@
|
|
6
6
|
|
7
7
|
try{
|
8
8
|
|
9
|
+
//$pdo = new PDO($dsn, $name, $pw, array(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)); ご指摘をいただいたので修正しました
|
10
|
+
|
9
|
-
$pdo = new PDO($dsn, $name, $pw, array(PDO::ATTR_ERRMODE
|
11
|
+
$pdo = new PDO($dsn, $name, $pw, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
|
10
12
|
|
11
13
|
}catch (Exception $e){
|
12
14
|
|
1
SQL文を修正しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
echo "start";
|
24
24
|
|
25
|
-
$stmt = $pdo -> prepare("INSERT INT user (ID) VALUES(?)");
|
25
|
+
$stmt = $pdo -> prepare("INSERT INTO user (ID) VALUES(?)");
|
26
26
|
|
27
27
|
$stmt -> execute(array('1'));
|
28
28
|
|