我的环境,Windows 2008,SQL Server 2000,php5.2.17.我的链接数据库的代码如下:
<?phpecho "<br/>\n进入mssql<br/>\n";//包含数据库信息的文件
include('db/mssql.inc');//链接成功,返回一个链接标识,失败返回FALSE
$my_conn = mssql_connect($db_server,$db_user_name,$db_password,true);if(!$my_conn)
{
//相当于exit
die('链接数据库失败!');
}
else
{
echo "链接SQL Server成功!<br/>\n";
//关闭SQL链接
mssql_close($my_conn);
}
echo "离开mssql<br/>\n<br/>\n";
?>其中,包含数据库的信息的文件mssql.inc,我现在把数据库的用户和密码都改成不正确的了,
还是显示链接正常。
显示如下:
进入mssql
链接SQL Server成功!
离开mssql
这是为什么呢???
谢谢高手指点,我刚开始学习哦。
<?phpecho "<br/>\n进入mssql<br/>\n";//包含数据库信息的文件
include('db/mssql.inc');//链接成功,返回一个链接标识,失败返回FALSE
$my_conn = mssql_connect($db_server,$db_user_name,$db_password,true);if(!$my_conn)
{
//相当于exit
die('链接数据库失败!');
}
else
{
echo "链接SQL Server成功!<br/>\n";
//关闭SQL链接
mssql_close($my_conn);
}
echo "离开mssql<br/>\n<br/>\n";
?>其中,包含数据库的信息的文件mssql.inc,我现在把数据库的用户和密码都改成不正确的了,
还是显示链接正常。
显示如下:
进入mssql
链接SQL Server成功!
离开mssql
这是为什么呢???
谢谢高手指点,我刚开始学习哦。
解决方案 »
- TCPDF windows下日文显示乱码,中文不显示....
- session 数据库共享问题
- 采集到的数据,怎么放到数据库里面?
- 哪有好用的OA,工作流要设计的较好,试用可以的话,肯定出钱
- 关于XML的问题
- 请教下,想学习PHP,不知道从那里下手,能给些建议吗?
- 关于EXE问题
- 很疑惑,关于$HTTP_SERVER_VARS["Referrer"],帮我啊!!
- 在php中,如何让客户端能够提取到最新的数据,而不是调用浏览器缓存中的数据?(菜鸟在csdn的"处女提问",请大家支持一下)
- XAMPP 不编译
- 重启apache2的时候 apache caught SIGTERM, shutting down
- 初学问题 hp中的date()
看起来没什么问题 在if(!$my_conn) 前 var_dump($my_conn); 看下输出什么
由于我是新手,所以有点迷惑啊。
我猜测,是不是和SQL Server的认证有关系??因为我是在我自己的机器上测试的。
但是我的SQL Server在安装时用的是混合认证啊。
-------------------------------------------
我现在把代码改成这样。
<?phpecho "<br/>\n进入mssql<br/>\n";//包含数据库信息的文件
include('db/mssql.inc');//链接成功,返回一个链接标识,失败返回FALSE
$my_conn = 0;
echo "my_conn=$my_conn<br/>\n";
$my_conn = mssql_connect($db_server,$db_user_name,$db_password,true);var_dump($my_conn);if($my_conn)
{
mssql_select_db($db_name,$my_conn);
$myquery = "select * from student";
$myquery_result = mssql_query($myquery);
$mynum = mssql_num_rows($myquery_result);
echo "返回行数=$mynum<br/>\n"; echo "链接SQL Server成功!$my_conn<br/>\n";
//关闭SQL链接
mssql_close($my_conn);
}
else
{
//相当于exit
die('链接数据库失败!');
}
echo "离开mssql<br/>\n<br/>\n";
?>
-----------------------------------
结果是这样的。进入mssql
my_conn=0
resource(4) of type (mssql link) 返回行数=3
链接SQL Server成功!Resource id #4
离开mssql
$my_conn = mssql_connect($db_server,$db_user_name,$db_password,true);
改成
$my_conn = mssql_connect($db_server,$user,$password,true);
看看还正确吗?
$my_conn = mssql_connect('192.168.2.2','ssa','ssa',false);
$my_conn = mssql_connect();改成上面这样的都可以。
我想我是在本机做测试,默认主机名就是localhost。
如果将IP地址改成其他的,不是我机器的,就链接失败了。那么应该是使用的本机的系统认证了。
但是如果不管在哪里,我都想用混合模式认证,应该在哪里调呢??
谢谢!!
我在SQL Server的企业管理器---安全性---登录下看到有两个用户。
一个是sa,另外一个是什么,现在记不得了。
简单看了一下他的属性,是通过windows身份验证的。
我直接就把他删了。
再打开IE。果然不能链接SQL Server了。
不过我现在怎么也链接不上了。
代码都改成这样了还是不行啊。
<?phpecho "<br/>\n进入mssql<br/>\n";$my_conn = mssql_connect("localhost","sa","sa");if($my_conn)
{
...//这里略去了。 //关闭SQL链接
mssql_close($my_conn);
}
else
{
//相当于exit
die('链接SQL Server失败!');
}
echo "离开mssql<br/>\n<br/>\n";
?>---------------------------
显示如下啊:
进入mssql
链接SQL Server失败!
问题解决了啊。
如果只用混合模式认证。
请注意啊。在php.ini中,mssql.secure_connection = Off
必须的啊,我的默认是on,或者是以前改为on的。如果是系统验证,你要改为mssql.secure_connection = On