如何在php中一页使用2个数据库连接

如何在php中一页使用2个数据库连接,php,html,mysql,Php,Html,Mysql,如何在php中一页使用2个数据库连接 这是我的代码: $conn = mysql_connect("","",""); mysql_select_db("",$conn); $db = mysql_connect("","",""); mysql_select_db("",$db); $sql = mysql_query("SELECT * FROM Client_table WHERE Client_Id ='" . $_POST["clients"] . "'"); $id = mysq

如何在php中一页使用2个数据库连接 这是我的代码:

$conn = mysql_connect("","","");
mysql_select_db("",$conn);

$db = mysql_connect("","","");
mysql_select_db("",$db);

$sql = mysql_query("SELECT * FROM Client_table WHERE Client_Id ='" . $_POST["clients"] . "'");
$id = mysql_fetch_array($sql);

$result = mysql_query("SELECT Client_table.Name, Client_table.Client_Id FROM Client_table, user WHERE user.username = '" . $_SESSION['username'] . "' AND Client_table.Branch = user.area Order by Name ASC");
我的当务之急是$result必须从两个不同的数据库获取数据

我的意思是:

  • (Client_表属于$conn数据库)和

  • (用户表属于$db数据库)

  • 在一个查询中获取这两个参数

    可能吗?

    怎么做

    事先非常感谢

    嗨,伙计们。 这是我的2个数据库

  • 数据库名称:Test1
  • 数据库名称:Test2
  • 测试1

    Client_表:{cl_id,名称,分支,地址}

    用户表:{user\u id,用户名,密码}

    测试2

    sites_表:{sit_id,名称,位置,a_id(来自area_表的FK),状态}

    area_表:{area_id,user,pass}

    请注意,这两个分贝不同

    这是我的查询:选择站点\u id, 站点名称、用户id、用户名 从站点、用户表 其中a_id=用户_id 状态=1或状态=2

    我需要任何人的帮助。我不能在一个简单的查询中加入2个数据库!请帮忙


    谢谢大家!

    您可以创建一个视图,从用户选项卡所在的数据库、客户表所在的数据库访问数据。

    您可以创建一个视图,从用户选项卡所在的数据库、客户表所在的数据库访问数据。

    如果两个数据库都在同一台服务器上,则有可能(虽然这样做实际上不是一个好的做法)。在查询中,必须在表名前面加上数据库名

    例如,假设“Client_table”在“Client_database”中,“user”表在“user_database”中,则FROM子句将是
    FROM Client_database.Client_table作为Client_table,user_database.user作为user


    您还可以通过两个查询完成此操作,两个连接(例如$conn_client和$conn_user)。从$conn_client获取所需的所有“client_table.Branch”值,然后使用“WHERE user.area in(…)”在$conn_用户上进行选择。

    如果两个数据库位于同一台服务器上,则有可能(虽然这样做实际上不是一个好的做法)。在查询中,必须在表名前面加上数据库名

    例如,假设“Client_table”在“Client_database”中,“user”表在“user_database”中,则FROM子句将是
    FROM Client_database.Client_table作为Client_table,user_database.user作为user

    您还可以在两个查询中完成此操作,两个连接(例如$conn_client和$conn_user)。从$conn_client获取您需要的所有“client_table.Branch”值,然后使用“WHERE user.area in(…)”在$conn_用户上进行选择。

    将true添加到第二个mysql_connect方法中 如果提供给mysql\u connect的参数相同,请确保连接未被重复使用,这是必需的

    然后,您需要通过将连接作为参数添加到方法中来指定查询时使用的连接:

    mysql_query("SELECT Client_table.Name, Client_table.Client_Id FROM Client_table, user WHERE user.username = '" . $_SESSION['username'] . "' AND Client_table.Branch = user.area Order by Name ASC", $db2);
    
    注意您不应该首先使用
    mysql\uu*
    ,因为它已被弃用。

    将true添加到第二个mysql\u connect方法中 如果提供给mysql\u connect的参数相同,请确保连接未被重复使用,这是必需的

    然后,您需要通过将连接作为参数添加到方法中来指定查询时使用的连接:

    mysql_query("SELECT Client_table.Name, Client_table.Client_Id FROM Client_table, user WHERE user.username = '" . $_SESSION['username'] . "' AND Client_table.Branch = user.area Order by Name ASC", $db2);
    

    请注意您首先不应该使用
    mysql\u*
    ,因为它已被弃用。

    只需在查询示例中使用数据库名称即可:

    从database1.Client_表中选择*其中somthing=thing
    联合所有
    
    从database2.Client_表中选择*,其中somthing12=otherthing

    只需在查询中使用数据库名称即可:

    从database1.Client_表中选择*其中somthing=thing
    联合所有
    
    从database2.Client\u表中选择*,其中somthing12=otherthing

    有两种方法:

    One:

    在你靠近的时候

    mysql_select_db("", $conn);
    $sql = mysql_query("SELECT * FROM Client_table WHERE Client_Id ='" . $_POST["clients"] . "'");
    $id = mysql_fetch_array($sql);
    $col1=$id['Col1'];
    $col2= $id['Col2'];
    $col3= $id['Col3'];
    mysql_close($conn);
    
    $db = mysql_connect("","","");
    mysql_select_db("",$db);
    $sql2 = mysql_query("OTHER QUERY FOR DATABASE2.TABLE2");
    $id2 = mysql_fetch_array($sql);
    $col2_1=$id['Col2_1'];
    //and so on...
    
    或与

    mysql_query("SELECT database1.dbo.table1.Col1_1, database2.dbo.table2.col2_1 where xx =xx");
    

    有两种方法:

    One:

    在你靠近的时候

    mysql_select_db("", $conn);
    $sql = mysql_query("SELECT * FROM Client_table WHERE Client_Id ='" . $_POST["clients"] . "'");
    $id = mysql_fetch_array($sql);
    $col1=$id['Col1'];
    $col2= $id['Col2'];
    $col3= $id['Col3'];
    mysql_close($conn);
    
    $db = mysql_connect("","","");
    mysql_select_db("",$db);
    $sql2 = mysql_query("OTHER QUERY FOR DATABASE2.TABLE2");
    $id2 = mysql_fetch_array($sql);
    $col2_1=$id['Col2_1'];
    //and so on...
    
    或与

    mysql_query("SELECT database1.dbo.table1.Col1_1, database2.dbo.table2.col2_1 where xx =xx");
    


    警告:您的代码极易受到sql注入攻击。它肯定必须是一个查询吗?为什么您不能在一个查询上运行查询,存储结果,然后在另一个查询上运行查询?不,GIb它不必在一个查询中,而是在一页和一列表中。希望您understand@ElieMbuyamba是的,我回答了我们的代码极易受到sql注入攻击。它肯定必须是一个查询吗?为什么不能在一个查询上运行查询,存储结果,然后在另一个查询上运行查询?不,GIb它不必在一个查询中,而是在一个页面和表的单列中运行。希望您understand@ElieMbuyamba是的,我回答了。有办法吗用php脚本表达你所说的话?谢谢你有没有办法用php脚本表达你所说的话?谢谢你太棒了,谢谢你,乔纳斯,这正是我需要的。它正在工作。你为我节省了很多时间。我真的很感激。太棒了,谢谢你,乔纳斯,这正是我需要的。它正在工作。你为我节省了很多时间。我真的很感激。嗨,莫斯塔法,我想你对2的说法是对的。所以,我需要的是这样的:“选择sites.site\u name,sites.site\u id FROM sites,user WHERE user.username=”“$\u SESSION['username']”和sites.srep\u id=user.area Order by sites.site\u name ASC”;我试着和大多数人一起运行,但仍然没有得到任何东西。请帮助。@Elimbuyamba-Hmm,我可以如何帮助你。。我需要数据库结构来实现这两个目标,以及你试图实现的目标和它不起作用的原因。是@Mostafa Mohsen我有2个数据库。请检查t