php如何在同一个页面访问2个不同服务器的mssql数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php如何在同一个页面访问2个不同服务器的mssql数据库相关的知识,希望对你有一定的参考价值。
最好可以有实际的样例...
我自己试下来的结果是第一个链接是没问题的...然后如果我在换数据库的时候用$conn.close() 就会报错...如果不close()那么在第二次mssql_connect()的时候就会报错...求真相!!!
另外,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()
和 <?php echo $loggedOnUser; ?>
这应该是这样的
【参考方案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 <?php echo $loggenOnUser; ?>
【讨论】:
添加了 session_start 和 但仍然没有显示在新页面的任何地方。【参考方案3】:查看本站:http://php.net/manual/en/function.session-start.php
您需要在所有 php 文件中写上session_start()
,最好在顶部。
【讨论】:
【参考方案4】:您应该在使用会话数组之前输入session_start()
。
另外,不要尝试<?php $loggenOnUser?>
,而是尝试<?=$loggenOnUser?>
。
【讨论】:
我在第一页开始了会话。我认为它只需要在它启动的地方启动一次,对吗? 没有。你应该在每一页上开始它。它不像真正的“开始”,而更像是“新建或加载”。【参考方案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数据库的主要内容,如果未能解决你的问题,请参考以下文章