1

首先,我仍在学习如何使用 PHP/MySQL ......所以在选择时或仅在插入/更新时是否可以使用事务?

如果可能,那么我将如何解决这个问题(伪代码):

关闭自动提交

从身份验证中选择 id,其中别名 = [用户输入]

从 id = ID FROM ABOVE SELECT 的标志中选择活动

如果:没有错误提交

其他:回滚

从第二个选择中获取行


以上是否可能与MySQL(请使用PHP语法)有关?

4

1 回答 1

3

在这里使用事务将毫无用处,因为您的查询仅处理SELECT.

这里有2个选择。(请注意,我只包含了 SQL 代码。)

1. 可以使用SELECTinsideSELECT语句。

SELECT active
  FROM flags
 WHERE id IN (
               SELECT id
                 FROM auth
                WHERE alias = 'userinput'
             );

2. 其他可能性是使用JOIN.

    SELECT f.active
      FROM flags f
INNER JOIN auth a
        ON f.id = a.id
     WHERE a.alias = 'userinput';

在这里,别名如fa用于指定表。

于 2013-04-21T19:44:15.717 回答