7

也许这样做是完全错误的,但是......

我需要做这样的查询:

SELECT * FROM DATABASE1, DATABASE2 WHERE DATABASE1.users.name = DATABASE2.users.name

如果我使用 phpmyadmin 它可以工作,但在 php 上页面会阻塞。

我连接到我正在使用的mysql的方式,

$result = new mysqli(服务器、用户、通行证、数据库)

我可以看到为什么它不起作用,我只连接到一个数据库,但是 phpmyadmin 是如何做到的呢?我该怎么做?

我看过其他帖子,但我想交叉两个数据库上的信息,但我还没有找到类似的东西。

[编辑] 我的代码的一个实际示例是:

if($type == "past"){// Hago una query u otro dependiendo de si quiero pasados o futuros
             $query = "SELECT DISTINCT E.* FROM quehaceshoy_testing.Events E, quehaceshoy_testing.Tickets TK, quehaceshoy_testing.TypeTickets TT, quehaceshoy_testing.Tickets_Reservados2 TR, AirTicket.TICKET T WHERE ((T.Email='$this->email' AND T.idCompra = TR.idCompra AND TR.idTypeTicket_TypeTickets = TT.idTypeTicket AND E.IDEvent = TT.idEvent_Events)OR (E.email = '$this->email')) AND  E.dateFinish < '".$fecha."' ORDER BY E.dateFinish DESC";
        }
        else{
             $query = "SELECT DISTINCT E.* FROM quehaceshoy_testing.Events E, quehaceshoy_testing.Tickets TK, quehaceshoy_testing.TypeTickets TT, quehaceshoy_testing.Tickets_Reservados2 TR, AirTicket.TICKET T WHERE ((T.Email='$this->email' AND T.idCompra = TR.idCompra AND TR.idTypeTicket_TypeTickets = TT.idTypeTicket AND E.IDEvent = TT.idEvent_Events)OR (E.email = '$this->email')) AND  E.dateFinish >= '".$fecha."' ORDER BY E.dateFinish DESC";
        }
        //echo $query;
        //$result = $this->makeQuery($query, 'RESULT');
        if($conn = db_connect()){

                    $result = $conn->query($query);
                    if(!$result){
                      //echo '<p>Unable to get list from database.</p>';
                      //echo $conn->error;
                      return false;
                    }

        }

db_connect 只是:

function db_connect()
{
   $result = new mysqli('localhost', $user, $pass, 'quehaceshoy_testing'); 
   $result->set_charset("utf8");

   if (!$result)
      return false;
   return $result;
}

此查询使页面无限地“加载”。

谢谢。

4

1 回答 1

2

我在下面测试编写了一个脚本,它似乎工作正常而没有失败......

    <?php 
          $con = mysql_connect("localhost","root","");
           mysql_select_db("test");

          $con1 = mysql_connect("localhost","root","");
          mysql_select_db("test1");

           $query = "SELECT * FROM test1.`manager` INNER JOIN test.employee   
                    ON test1.`manager`.id= test.employee.mgr";
          $result = mysql_query($query);
          while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
           printf("ID: %s  Name: %s", $row[0], $row[1]);  
          }
      ?>

可能您需要在此处发布您的代码。是不是你的数据集很大?请发布您的代码,以便我们检查和指导。

于 2012-04-29T16:17:28.790 回答