`
renzhen
  • 浏览: 251134 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

为PHP微软SQL Server驱动加入更好的ADODB支持

    博客分类:
  • PHP
阅读更多
  微软对PHP的支持力度很大,在IIS下加入了PHP支持,支持PHP访问.Net组件,更重要的是发布了原生的SQL Server驱动来帮助PHP程序使用SQL Server数据库做开发。
  公司的CRM产品使用PHP开发,使用ADODB统一数据库连接层,当初开发时,只支持MySQL一种数据库,后来,我通过PHP内置的MS SQL驱动来帮助系统支持SQL Server数据库,由于使用了ADODB,这个类库对于PHP内置的MS SQL驱动支持很好,而数据库函数相似度也很高,所以移植过程还算顺利,这个过程主要是对于系统中的一些不通用的sql语句进行修改,从而可以支持SQL Server数据库,其次就是改了分页函数的算法,支持SQL Server2005的ROWNUM函数,不过使用这个驱动的问题是对UTF-8的支持不佳,虽然CRM系统内部可以读取和写入中文,但是使用SQL Server Management Studio打开会发现里面都是乱码,对于某些企业而言,这是不可接受的,也不方便一些系统间的集成。
  当微软发布PHP原生的SQL Server驱动第一版时候,我就曾经想要使用这个驱动开发访问SQL Server数据库,来达到更好的对于SQL Server的支持,毕竟微软开发的东西更有保障,可是最终没有成功,不成功的原因很多,主要是:
  1. ADODB内对于PHP原生的SQL Server驱动支持不够,如果要使用它必须自己开发对应的内容,这个要耗费大量的时间。
  2. PHP原生的SQL Server驱动同样不支持UTF-8编码。
  3. 最后也是最重要的问题:关键函数和特性的缺失,包括num_rows函数和可滚动结果集的特性,而CRM系统却大量依赖这些特性,于是与系统无法保持兼容。
   最近看到了微软发布PHP原生的SQL Server驱动v1.1,里面看到对UTF-8编码和一些关键特性的支持,我知道是时候把MS SQL驱动换成微软PHP原生的SQL Server驱动了。
   但是ADODB内对于PHP原生的SQL Server驱动支持似乎只是v1.0,没有把v1.1中的特性包含在其中,于是我只能自己动手,丰衣足食了。其中主要改变如下:
   1. 在sqlsrv_connect加入charset参数,强制连接使用UTF-8编码。
   2. 在sqlsrv_query中加入了Scrollable选项,强制使用SQLSRV_CURSOR_KEYSET类型结果集(支持num_rows函数和随机访问)。
   3. 重写Move函数支持随机访问结果集。
   4. 。。。
   我将修改的文件上传上来,如果你要使用,可以将php文件放到ADODB目录下的drivers目录下即可。
0
3
分享到:
评论
1 楼 wwx840723 2014-09-03  
$db = ADONewConnection("mssqlnative");
$sql9 = "UPDATE table SET table_type=1 WHERE user_id=1";
$db->Execute($sql9);
为啥不执行修改呢?

相关推荐

    SQL server 2000驱动包

    SQL Server 2000驱动包是用于连接到Microsoft SQL Server 2000数据库管理系统的重要组件。在本文中,我们将深入探讨SQL Server 2000的驱动、其功能、以及如何使用这些驱动来建立数据库连接。 首先,SQL Server 2000...

    C++使用ADO封装连接SQLServer类

    ADO是微软提供的一种用于访问数据库的接口,它使得C++程序员能够轻松地与多种数据库进行通信,包括SQL Server。 首先,理解ADO的核心概念。ADO包含一系列COM对象,如Connection、Recordset、Command等,它们分别...

    adodb.rar_c 连接sqlserver_sqlserver 封装

    `adodb.rar_c 连接sqlserver_sqlserver 封装`这个标题所指的,是C语言环境下封装的ADODB(ActiveX Data Objects for Database)接口,用于与SQL Server数据库进行交互。ADODB是一个微软提供的数据访问接口,允许...

    博图WinCC V16用ADODB、DataGrid控件显示SQL Server数据.docx

    ADODB(ActiveX Data Objects Database)是微软提供的一个数据库访问接口,支持多种数据库,包括SQL Server。在WinCC V16中,我们可以通过编写VB脚本来操作ADODB对象,从而与SQL Server进行数据交互。 首先,我们...

    利用ADODB实现SQLSERVER数据库访问 (1).pdf

    ADODB(Active Data Objects Data Base)是一种PHP存取数据库的中间函数组件,可以支持多种数据库,如MySQL、PostgreSQL、Interbase、Informix、Oracle、SQL Server、Foxpro、Access、Sybase、DB2等。使用ADODB可以...

    SQL Server 2000 驱动包

    SQL Server 2000驱动包是用于连接到Microsoft SQL Server 2000数据库管理系统的一个关键组件。这个驱动包提供了必要的接口,使得应用程序能够通过ODBC(Open Database Connectivity)或者ADO(ActiveX Data Objects...

    ADODB数据驱动操作支持库

    ADODB(ActiveX Data Objects Database)是微软提供的一种数据访问接口,主要用于在Windows环境中与各种数据库进行交互。这个“ADODB数据驱动操作支持库”很可能是一个包含ADODB接口的组件或者类库,用于简化和增强...

    ADODB.rar_ado adodb_adodb ado_vb sqlserver

    ADODB还支持更复杂的功能,如参数化查询、事务处理、数据流操作等。通过深入学习ADODB,开发者可以实现高效、灵活的数据库应用程序。在实际开发中,还需要考虑安全性、性能优化以及错误处理等多方面因素,确保代码的...

    PHP与SQLServer2000架构WindowsWeb数据库实务

    本书会介绍如何使用PHP的PDO(PHP Data Objects)扩展或者ADODB(Active Record Object Database Abstraction Library)库来连接和操作SQL Server数据库,进行数据的读取、写入和事务处理。此外,还会涉及错误处理、...

    Flash连接SQLServer数据库

    1. **创建数据库**:首先需要在SQL Server中创建一个名为`stud`的新数据库,并在其中创建一个表`xi`用于存储系别信息。具体的SQL语句如下: ```sql CREATE TABLE dbo.xi ( xiHao INT IDENTITY(1,1) NOT NULL, ...

    SQL Server调用WebService方法

    在SQL Server 2005中调用WebService方法是一种集成外部服务到数据库操作中的技术,这对于数据交互和扩展SQL Server的功能至关重要。以下将详细介绍如何实现这一功能,以及相关的知识点。 一、理解SQL Server与Web ...

    VC6连接sql server 2008的实例

    - 安装SQL Native Client,它是SQL Server 2008的专用连接驱动,支持更高效的数据访问。 2. **设置数据库连接**: - 打开VC6,创建一个新的项目或使用提供的示例工程。在项目中,你需要包含适当的头文件,如`#...

    asp+sql server

    SQL Server则是微软的一个关系型数据库管理系统,广泛应用于数据存储、管理和分析。当ASP与SQL Server结合使用时,可以构建强大的Web应用程序,实现数据的高效管理和交互。 ASP与SQL Server集成的关键在于ADO...

    自动化 wincc连接sql server数据库脚本

    自动化 wincc连接sql server数据库脚本,不需要wincc授权,直连sql server数据库。解决归档导出问题

    VBA连接SQLSERVER数据库实例.doc

    在本文中,我们将深入探讨如何使用VBA(Visual Basic for Applications)通过ADO(ActiveX Data Objects)连接到SQL Server数据库并执行数据查询。这个过程在Excel中尤其常见,因为VBA是Excel内置的编程环境,允许...

    连接SQL Server数据库方法

    连接SQL Server数据库,我们需要使用ADO(ActiveX Data Objects),它是Microsoft提供的一个数据访问接口,可以处理各种类型的数据库,包括SQL Server。以下是一段基本的ASP连接SQL Server的代码示例: ```vbscript...

    Sql Server数据库超时问题的解决方法

    Sql Server数据库超时问题的解决方法 在Sql Server数据库中,超时问题是一个常见的错误,可能会导致数据库的性能下降,影响应用程序的稳定运行。该问题的解决方法可以从多方面入手,包括数据库设计、连接设置、查询...

    sql.zip_sql server_vb SQL Server

    总之,SQL Server与VB的结合为开发高效的数据驱动应用程序提供了强大支持。无论你是刚开始接触数据库编程,还是希望提升现有项目的数据管理能力,这个资料包都将是你宝贵的参考资料。在实践中不断探索和学习,你将...

    从sqlserver生成XML

    本篇文章将详细介绍如何在VB(Visual Basic)环境中,利用ADO(ActiveX Data Objects)技术将SQL Server中的表数据转换为XML文件。 首先,我们需要了解XML(eXtensible Markup Language),它是一种用于标记数据的...

    ASP连接SQL Server数据库总结.doc

    在安装SQL Server数据库时,需要注意身份验证模式要设置为“SQL Server和Windows混合模式”。这将确保SQL Server数据库能够正确地与Windows操作系统集成。 二、创建数据库 创建数据库需要通过企业管理器来实现。...

Global site tag (gtag.js) - Google Analytics