7

在使用 InnoDB 的 MySql 中,在一个事务的上下文中,插入是否应该被以下选择可见?

例子 :

 $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 回答