首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mssql_connect与sqlsrv_connect的区别

mssql_connect与sqlsrv_connect的区别
EN

Stack Overflow用户
提问于 2011-06-10 01:54:24
回答 2查看 13.4K关注 0票数 3

我刚刚将连接驱动程序(扩展)从mssql_connect更改为使用sqlsrv_connect。不幸的是,事情似乎并不像我想要的那样工作。如果有人能告诉我哪里出了问题,我该如何修复它,我将不胜感激。

代码摘录:

代码语言:javascript
复制
//a oracle DB moudle with a generic functions such as 
//db_connect() db_query()

/// turn on verbose error reporting (15) to see all warnings and errors 
error_reporting(15);
//generic DB operations

// Global record . for using in 
$curr_rec = NULL;

function dbok($res)
{
    if($res==false){
        echo "DB error: "."FIXME need error mesg"."\n";
        exit;
    }
    return $res;
}

function db_now_expr()
{
    return "getdate()";
}

function db_is_connected($dbh)
{
    return $dbh>0;
}

function ensure_connected($dbh)
{
    if(!db_is_connected($dbh)) die("DB is not connected, operation failed");
    //echo "DEBUG: hdb=$dbh"; 
}

//connect to given database 
//return handler to DB


function dbo_logon($dbserver,$dbname)
{

    $tsql = ??????? ====>>> what should i put here???? 

    $dbserver = "computername\SQLEXPRESS";
    $dbname = MY_Database_name;

    $connectionOptions = array("Database"=>"BULL");

    $dbh=dbok(sqlsrv_connect($dbserver, $connectionOptions));
    dbok(sqlsrv_query($dbname,$dbh)); 

    $stmt = sqlsrv_query( $connectionOptions, $tsql );

    return $dbh;

}

//close DB
function dbo_logoff($dbh)
{
    if(!db_is_connected($dbh)) echo("DB disconnect error");
    sqlsrv_close($dbh);
}

以下是使用mssql_connect的原始代码

代码语言:javascript
复制
//a oracle DB module with a generic function such as 
//db_connect() db_query()

/// turn on verbose error reporting (15) to see all warnings and errors 
error_reporting(15);
//generic DB operations

// Global record . for using in 
$curr_rec = NULL;

function dbok($res)
{
    if($res==false){
        echo "DB error: "."FIXME need error mesg"."\n";
        exit;
    }
    return $res;
}

function db_now_expr()
{
    return "getdate()";
}

function db_is_connected($dbh)
{
    return $dbh>0;
}

function ensure_connected($dbh)
{
    if(!db_is_connected($dbh)) die("DB is not connected, operation failed");
    //echo "DEBUG: hdb=$dbh"; 
}

//connect to given database 
//return handler to DB
function dbo_logon($dbserver,$dbuser,$dbpass,$dbname)
{
    // $dbh=dbok(mssql_pconnect($dbserver,$dbuser,$dbpass));
    $dbh=dbok(mssql_connect($dbserver,$dbuser,$dbpass));
    //error_log("connect to [$dbname]".date("His")." \r\n",3,"/tmpbull.log"); //DBEUG DELME
    dbok(mssql_select_db($dbname,$dbh));
    //dbo_exec($dbh,"alter session set NLS_DATE_FORMAT='dd-mm-yyyy //hh24:mi:ss'");
    return $dbh;

}

//close DB
function dbo_logoff($dbh)
{
    if(!db_is_connected($dbh)) echo("DB disconnect error");
    mssql_close($dbh);
}

请注意,我必须将身份验证方法从SQL身份验证更改为Windows身份验证,因为sqlsrv_connect使用Windows身份验证而不是SQL身份验证。是那么回事吗?

EN

回答 2

Stack Overflow用户

发布于 2011-06-10 03:14:57

我认为这两个链接将有助于理解mssql和sqlsrv之间的差异。

  • http://blogs.msdn.com/b/brian_swan/archive/2010/03/08/mssql-vs-sqlsrv-what-s-the-difference-part-1.aspx
  • http://blogs.msdn.com/b/brian_swan/archive/2010/03/10/mssql-vs-sqlsrv-what-s-the-difference-part-2.aspx

尽管简而言之,引用其中一篇文章:

sqlsrv驱动程序由微软构建、维护和支持`

mssql驱动程序是一个社区构建的驱动程序。

我不确定这个驱动程序是在多长时间内作为官方PHP扩展更新或维护的,但从PHP5.3发布起,它不再适用于PECL。在网上快速搜索一下,有几个地方可以下载mssql驱动程序,但我没有发现任何一个地方表明该驱动程序正在积极维护中。

来源:http://blogs.msdn.com/b/brian_swan/archive/2010/03/08/mssql-vs-sqlsrv-what-s-the-difference-part-1.aspx

关于您的代码示例,请参见下面的内容:

$dbserver = "computername\SQLEXPRESS";$dbname = "BULL";$connetion = dbo_logon($dbserver,$dbname);function dbo_logon($dbserver,$dbname) { $connectionOptions =dbo_logon(“数据库”=>$dbname);$dbh=sqlsrv_connect($dbserver,$connectionOptions);if(!$dbh){ die(“数据库连接错误”);return false;}返回$dbh;}

我认为这将适用于连接。请注意代码未经过测试。

票数 2
EN

Stack Overflow用户

发布于 2014-09-25 15:20:21

“sqlsrv驱动程序是由Microsoft`构建、维护和支持的。”现在2014年9月,还没有支持php 5.6的官方版本。最后一个官方版本是在2012年4月。MS style...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6297132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档