php如何在同一个页面访问2个不同服务器的mssql数据库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何在同一个页面访问2个不同服务器的mssql数据库相关的知识,希望对你有一定的参考价值。

最好可以有实际的样例...
我自己试下来的结果是第一个链接是没问题的...然后如果我在换数据库的时候用$conn.close() 就会报错...如果不close()那么在第二次mssql_connect()的时候就会报错...求真相!!!

具体的连接代码是啥样的呢?如果是同一个数据库服务器,你可以试试看不要关闭连接,直接用mssql_select_db切换数据库呢?

另外,php没有$conn.close()这种写法,如果$conn是对象,那么是$conn->close();否则应该是mssql_close();


$conn = mssql_connect('host', 'user', 'password');
mssql_close($conn);追问

不同的服务器的 =.=说实话...我真心不算十分的菜....

追答

那你看我的补充回答...php的对象操作符不是'.'而是'->'...

参考技术A $conn.close()应该是mssql_clode( $conn );

个人感觉是这样
参考技术B 关闭数据库的时候试试mssql_close().
$conn.close() 报错的原因可能是你没关闭数据库连接追问

mssql_close()之后 第二次的connect就报错了。。。

追答

重新初始化一个连接对象试试

参考技术C 你的服务器都不一样,检查下你的mysql_connect()里面的参数,尤其是服务器地址写对了没有,然后在php里面好像不能$conn.close()这样子写啊。

如何使用 php 在不同页面中访问我的会话变量?

【中文标题】如何使用 php 在不同页面中访问我的会话变量?【英文标题】:How can I access my session variable in a different page with php? 【发布时间】:2015-04-08 20:08:26 【问题描述】:

大家我在 login.php 页面的顶部启动了会话变量。然后设置会话,我使用 include 语句调用第二页。我用 if 语句进行了测试,它似乎通过了。然后我尝试在新显示的页面中回显变量的内容。页面显示意味着它通过了 if 块但会话变量的内容没有显示。就好像会话变量超出了范围。如何在不同的页面中访问我的会话变量。

 <?php
 session_start();
 $username = "";

 if (isset($_POST['submit']))
     
     $username = $_POST["username"];
     $password = $_POST["password"];
     $_SESSION["username"] = $found_admin["username"];
     if (isset($_SESSION["username"]));
     
     redirect_to("index.php");
     
      else
    
    $_SESSION["message"] = "Username/password not found.";
    
    

 ?>


 <?php include("login.html"); ?>

这是我的 php 文件调用的 html 页面:

 <!doctype html>

 <head>

 </head>
 <body>
 <?php

 echo $_SESSION["username"];
 $loggenOnUser=$_SESSION["username"];
 ?>
<div class="gridContainer clearfix">
    <div id="div1" class="fluid">
This page is being called by my login.php file.</div><div id="LoggedInUser" class="fluid ">Hi.  I'm <?php $loggenOnUser?> </div>
      <img id="homeImage"  src="images/home.gif" /> </div>
</div>
 </body>
 </html>

似乎无法理解为什么我无法访问另一个页面上的会话变量。任何帮助将不胜感激。谢谢!

【问题讨论】:

第二个文件中缺少 session_start()&lt;?php echo $loggedOnUser; ?&gt; 这应该是这样的 【参考方案1】:

确保你使用

session_start();

在每个页面的开头,或任何需要访问会话的 PHP 文件。

执行此操作的最简单方法是使用 header.php 文件,并在您网站的每个页面或公共页面的顶部包含/要求此文件。

在这个 header.php 中你会有类似

<?php
    session_start();
    if (isset($_SESSION['username'])) 
      // This session already exists, should already contain data
        echo "User ID:", $_SESSION['id'], "<br />"
     else 
        // New PHP Session / Should Only Be Run Once/Rarely/Login/Logout

        $_SESSION['username'] = "yourloginprocesshere";
        $_SESSION['id'] = 444;
    
?>

你的页面就是这样的

 <?php require "header.php"; ?>
 <!doctype html>
 <head></head>
 <body>
 <?php
     if (isset($_SESSION["username"])) 
         $loggenOnUser = $_SESSION["username"];
         echo "Found User: ", $loggenOnUser, "<br />"
      else 
         $loggenOnUser = " a public user";
     
 ?>
     <div class="gridContainer clearfix">
         <div id="div1" class="fluid">
             This page is being called by my login.php file.
         </div>
         <div id="LoggedInUser" class="fluid ">
             Hi.  I'm <?php echo $loggenOnUser; ?> 
         </div>
         <img id="homeImage"  src="images/home.gif" /> </div>
     </div>
 </body>
 </html>

【讨论】:

欢迎您 ;) 只是一个提示.. 需要 "header.php"... 将其扩展为多个包含/需要... session.php/database.php/user.php/ content.php 或任何.. 它与 php 一起使用很方便。【参考方案2】:

*编辑

你忘了echo

您需要在访问会话之前启动会话 变量

session_start() 放在页面顶部 放回声Hi. I'm &lt;?php echo $loggenOnUser; ?&gt;

【讨论】:

添加了 session_start 和 但仍然没有显示在新页面的任何地方。【参考方案3】:

查看本站:http://php.net/manual/en/function.session-start.php

您需要在所有 php 文件中写上session_start(),最好在顶部。

【讨论】:

【参考方案4】:

您应该在使用会话数组之前输入session_start()。 另外,不要尝试&lt;?php $loggenOnUser?&gt;,而是尝试&lt;?=$loggenOnUser?&gt;

【讨论】:

我在第一页开始了会话。我认为它只需要在它启动的地方启动一次,对吗? 没有。你应该在每一页上开始它。它不像真正的“开始”,而更像是“新建或加载”。【参考方案5】:

试试这个,你忘了开头的 session_start()

 <?php
 session_start();
?>
    <!doctype html>

     <head>

     </head>
     <body>
     <?php

     echo $_SESSION["username"];
     $loggenOnUser=$_SESSION["username"];
     ?>
    <div class="gridContainer clearfix">
        <div id="div1" class="fluid">
    This page is being called by my login.php file.</div><div id="LoggedInUser" class="fluid ">Hi.  I'm <?php $loggenOnUser?> </div>
          <img id="homeImage"  src="images/home.gif" /> </div>
    </div>
     </body>
     </html>

【讨论】:

【参考方案6】:

如果您已经完成了 echo 和 session start,这是绝对需要完成的,但仍然没有,那么看起来您在 $found_admin 数组中针对该用户名没有“任何内容”

$_SESSION["username"] = $found_admin["username"];

你确定那个数组里有东西吗?你能打印 $found_admin 数组吗?

【讨论】:

以上是关于php如何在同一个页面访问2个不同服务器的mssql数据库的主要内容,如果未能解决你的问题,请参考以下文章

每个用户同时有 2 个不同的 php 请求

如何使用 php 在不同页面中访问我的会话变量?

php 如何得到访问者在当前页面的停留时长?

用户直接访问php文件时如何使页面空白?

php中如何使用session 来实现在一个页面登陆后才能访问另外一个页面

如何通过php的curl模拟ajax请求,获取其返回值