- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我刚刚将连接驱动程序(扩展)从 mssql_connect
更改为使用 sqlsrv_connect
。不幸的是,事情似乎并不如我所愿。如果有人能告诉我出了什么问题以及我该如何解决,我将不胜感激。
代码摘录:
//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
的原始代码:
//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 身份验证。是吗?
最佳答案
我认为这两个链接将有助于理解 mssql 和 sqlsrv 之间的区别
虽然简而言之,引用其中一篇文章:
The sqlsrv driver is built, maintained, and supported by Microsoft`
和
The mssql driver is a community-built driver.
I’m not sure how recently this driver was updated or maintained as an official PHP extension, but as of the release of PHP 5.3, it is no longer available with PECL. A quick internet search turns up a few places to download the mssql driver, but none of them that I’ve found indicate that the driver is being actively maintained.
至于您的代码示例,请参见下文:
$dbserver = "computername\SQLEXPRESS";
$dbname = "BULL";
$connetion = dbo_logon($dbserver,$dbname);
function dbo_logon($dbserver,$dbname) {
$connectionOptions = array("Database"=>$dbname);
$dbh=sqlsrv_connect($dbserver, $connectionOptions);
if(!$dbh){
die("Error in Database connection");
return false;
}
return $dbh;
}
我认为这将适用于连接。请注意代码未经测试。
关于php - mssql_connect 和 sqlsrv_connect 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6297132/
我有一个 Linux 盒子,一夜之间决定开始出现问题。我出现了两个不同的错误。 我的 php 脚本运行以下内容: $sql_connect = @mssql_connect($SQLServer, $
我有一个 UBUNTU LAMP 设置。安装了所有必要的扩展 php5-odbcphp5-mssqlFREETDSunixODBC 在 CLI 中,我使用 isql 测试了与数据库的连接。和 tsql
我使用的是 PHP 5.2,通常 mssql_connect 工作正常 - 但我正在尝试连接到新的 MS SQL 服务器,但它无法连接。我的连接详细信息或凭据可能有问题,但我无法判断,因为我无法收到错
我有 MSSQL 和 IIS7 服务器,但我想编写一个可以从我的数据库中检索数据的 PHP 网站。 我已将所有 mysql_ 实例切换为 mssql_,但当我尝试时它根本无法连接: $this->co
我正在从事一个 PHP 对话系统与 Microsoft SQL Server 2008 通信的项目,我需要在 PHP 端提高速度。 在分析我的 PHP 脚本后,我发现在该特定系统上调用 mssql_c
我尝试设置与我的网站和 mssql 数据库的连接。我可以连接到数据库,但无法执行 SQL 查询。我的代码是 $connection = mssql_connect('jass8l1.database.
当我尝试使用 tsql -H 连接到 MSSQL 时,我有一台装有 Apache 和 PHP 的 Centos 服务器,另一台服务器上有一台 SQL Server “sql server ip”-p1
我正在使用 Godaddy Deluxe Web Hosting 和 Linux 操作系统。 PHP 版本为 5.3。 我遇到了这个错误: Fatal error: Call to undef
我刚刚将连接驱动程序(扩展)从 mssql_connect 更改为使用 sqlsrv_connect。不幸的是,事情似乎并不如我所愿。如果有人能告诉我出了什么问题以及我该如何解决,我将不胜感激。 代码
我已经为此苦苦挣扎了一段时间,但我不知道我错过了什么。错误是: call to undefined function mssql_connect() 已经调查过了,我已经做了我能做的一切。 我将 ph
我的网站使用的是 Windows 10 和 SQL Server(我使用的是 codeigniter),在 Windows 中这是我的设置 $db['default'] = array( 'd
今天,我重新启动了我的 CentOS 服务器,之后我的 PHP 应用程序开始无法访问我们的 MsSQL 服务器。 [Sun Mar 13 23:44:31 2011] [error] [client
在使用 PHP7 将 Web 应用程序移植到服务器时,我遇到了一个问题:我无法让 mssql_connect 工作。我发现 mssql 在 PHP7 上还不能工作(或者永远不会工作)。 在 Ubunt
$conn_161 = "192.168.0.161"; //local serwer adress $user_161 = "ME"; $pass_161 = "what_is_the_passw
我在尝试连接到我的 MSSQL 2012 Express 数据库时遇到严重问题,PHP5 在 Apache 上运行。 作为测试设置,我刚刚安装了一个带有 PHP 5.4.4 的 XAMPP 和在 Wi
我知道 mssql_connect 无法在 PHP 5.3 或更高版本的 Windows 服务器上运行,但它可以在 Linux 上运行吗? 最佳答案 mssql_connect = 连接到 MS SQ
信息: 服务器:centos 6.2 PHP 版本 5.3.3 已安装:freetds;外设数据库; php_mssql selinux 被禁用 mssql.so 已在 php.ini 中启用 我按照
我刚收到一封来 self 们的主机的电子邮件,他们已经将我们的 PHP 升级到 5.3,但不幸的是,所有脚本现在都已损坏。我将其追溯到函数 mssql_connect 失败。支持人员告诉我这在 5.3
我不得不将我们为客户端编写的应用程序移动到新服务器,而我使用 PHP mssql_connect 启动的远程连接已停止工作。我注意到 PHP 不是用 mssql 编译的,所以我要求服务器管理员安装它。
我以前从未使用过 php,我正在尝试连接到运行 IIS7 和 PHP5.3 的 Windows 机器上的 SQL Server 2008 实例。 我已经从 here 下载并安装了 SQLSRV30.E
我是一名优秀的程序员,十分优秀!