MySql:在提交之前选择在同一事务中插入的一行

时间:2013-10-07 14:19:54

标签: mysql transactions

在使用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();

在这种情况下,应该测试'在$结果?如果没有,我怎么能这样做?

精确度:列'标签'不是主键,但有索引。

1 个答案:

答案 0 :(得分:3)

是的,'测试'必须在$ result中。单个事务中的所有操作都是彼此可见的。