代码之家  ›  专栏  ›  技术社区  ›  Felix

同步mysql查询+PHP

  •  1
  • Felix  · 技术社区  · 15 年前

    我需要检索数据从两个表在同一时间,表没有链接的外国键或类似的。

    $query1 = "select idemployee from employee where address like 'Park Avenue, 23421'";
    $query2   "select idcompany from company where bossName  like 'Peter'";
    

    更新时间:

    6 回复  |  直到 13 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

    取决于你想对这些查询做什么。例如,如果您使用的是AJAX表单,并且可以发出两个请求,那么您应该创建单独的脚本,每个脚本返回每个查询的结果。这就是在不同的进程中有效地运行它们,所以它们同时执行。

    no such thing as threading per se in PHP ,你可以看到它周围有一个黑客 here (使用成熟的流程。)

        2
  •  2
  •   Wrikken    15 年前

    或者使用单个查询,或者 Gearman 让worker异步执行作业(我假设当前的代码只是一个示例:如果您的查询执行得非常糟糕,那么您希望异步执行它们。那么您很可能有数据库问题)。准备一些执事流程来执行任务相对简单。

        3
  •  1
  •   Theodore R. Smith    15 年前

    嗯。。。

    $query1 = "select idemployee from employee where address like ?";
    $query2 =  "select idcompany from company where bossName  like ?";
    
    $stmt1 = $pdo->prepare($query1);
    $stmt1->execute(array('Park Avenue, 23421'));
    $employee = $stmt1->fetch();
    
    $stmt2 = $pdo->prepare($query2);
    $stmt2->execute(array('Peter'));
    $company = $stmt2->fetch();
    

    我错过了什么?

        4
  •  1
  •   VolkerK    15 年前

    你呢 能够 http://docs.php.net/mysqli.poll (两者仅适用于PHP5.3+和 mysqlnd ).

        5
  •  0
  •   Theodore R. Smith    15 年前

    与我之前的回答相反:

    创建新表

    CREATE TABLE EmployeeBossXref (
        id INT auto_increment,
        employee_id INT,
        boss_id INT,
        company_id INT,
        FOREIGN KEY (employee_id) REFERENCES Employee(id),
        FOREIGN KEY (boss_id) REFERENCES Employee(id),
        FOREIGN KEY (company_id) REFERENCES Company(id)
    ) ENGINE=InnoDB;
    

    然后将SQL更改为:

    select Employee.name, Boss.name, Company.name FROM Employee 
    JOIN EmployeeBossXref ebx ON ebx.employee_id=Employee.id 
    JOIN Employee Boss ON Boss.id=ebx.boss_id
    JOIN Company ON Company.id=ebx.company_id
    WHERE Employee.address LIKE 'Park Avenue, 23421'
      AND Boss.name LIKE 'Peter';
    

    在这个系统中,所有的老板都是雇员(从逻辑上说,他们就是!),员工可以有多个,也可以没有老板。

        6
  •  0
  •   GrandmasterB    15 年前

    推荐文章