7

InnoDB を使用する MySql では、1 つのトランザクションのコンテキストで、次の選択によって挿入が表示されるはずですか?

例 :

 $connect = new PDO('mysql:host='.  getConfig()->get('DB_HOST').';dbname='.  getConfig()-   >get('DB_NAME'), getConfig()->get('DB_USER'), getConfig()->get('DB_PASSWORD'), array(PDO::ATTR_PERSISTENT => true));
 $connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 $connect->beginTransaction();

 $sql = 'INSERT INTO t_table (label) VALUES ("test") WHERE id = "1"';
 $query = $connect->prepare($sql);
 $query ->execute();

 $sql2='SELECT * FROM t_table';
 $query2=$connect->prepare($sql2);
 $query2->execute();
 $result = $query2->fetch();

 $connect->commit();

この場合、'test' は $result に含めるべきですか? そうでない場合、どうすればそうすることができますか?

精度: 列「ラベル」は主キーではありませんが、インデックスがあります。

4

1 に答える 1

8

はい、'test' は $result にある必要があります。単一のトランザクション内のすべての操作は相互に表示されます。

于 2013-10-07T14:27:00.773 に答える