質問編集履歴

3

質問補足

2016/11/07 03:19

投稿

katsukihi
katsukihi

スコア10

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のミスを修正

2016/11/07 03:19

投稿

katsukihi
katsukihi

スコア10

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, PDO::ERRMODE_EXCEPTION));
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文を修正しました

2016/11/07 03:16

投稿

katsukihi
katsukihi

スコア10

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