1、PHP+SQLServer2005+系统 DSN 配置+ODBC 查插删改1. 工具准备:1. SQL Server 2005 Express Edition SQLEXPR_CHS.EXE 适用于 64 位系统SQLEXPR32_CHS.EXE 适用于 32 位系统2. Microsoft SQL Server Management Studio Express (SSMSE)SQLServer2005_SSMSEE.msi 适用于 32 位系统SQLServer2005_SSMSEE_x64.msi 适用于 64 位系统SSMSE 按默认配置安装即可。比较简单,下面就不讲了。3. wamp
2、server2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-x64.exeapache + php + mysql 集成软件,安装以后就可以使用了,而无需什么配置(只需要配一下网站根目录) 。4. ZendStudio非必须。这是一个 PHP 的 IDE,在 eclipse 的基础开发的。2. 环境Win7 旗舰版3. 安装 SQL Server 2005 Express Edition 主要步骤首先运行 SQLEXPR_CHS.EXE。下图是系统配置检查结果显示了一些警告信息,但无关紧要,除非你用到了 ASP.NET。进入功能选择菜单后,将【连接组件】选中(主要
3、用于命令行访问数据库服务器) ,可以点击【浏览】改变数据库安装位置。之后是设置数据库服务器实例名:选择【命名实例】 ,可以输入实例名(此实例名就是安装完成之后 SQLServer 服务器的名称(会转为全大写形式) ) ,或使用它给的实例名。如果选择【默认实例】:那么实例名将是 MSSQLSERVER。注:【实例名】是用于区分同一台机器上安装的各个不同配置的 SQLServer 服务器的。SQLServer 可以是同一个版或不同版。在设置服务帐户时:我选择的是【使用内置系统帐户:Local system】点击【下一步】之后进行身份验证模式。选择【Windows 身份验证模式】 (此处主要是为了通
4、过 ODBC 连接数据库时不使用密码) 。当然如果你需要更高的安全性也可以选择另外一个,并输入密码。之后的步骤就比较简单了,按下面的图操作就可以了。4. 配置 SQL Server 2005 Express找到安装好的 SQLServer2005,选择 SQL Server 外围应用配置器。在出现的界面点击【服务和连接的外围应用配置器】之后会出现下图所示的界面。当此界面中你就可以看到之后建立的所有【数据库服务器实例】 ,并可以对其进行配置。 (下图是最新的图,其它的图还是用的以前的,所以别的图中没有 SQLNEWINSTANCE 这个服务器) 。选中你要使用的【数据库服务器】 (此处我选的是
5、SQLEXPRESS) ,然后点击其【远程连接】【本地连接和远程连接】 ,选择【同时使用 TCP/IP 和 named pipes】 (这么做是为了使用 ODBC 连接数据库服务器)(重启服务)点击【服务】【停止】【启动】OK这就基本配置完了。这时候你用【SQL Server 配置管理器】就可以去查看服务状态了。要保证SQLServer(SQLEXPRESS)处于运行状态。如果有端口冲突之类的问题,可以点击【SQLEXPRESS 的协议】【TCP/IP 】进行配置。配置方法参见:http:/ Microsoft SQL Server Management Studio Express (SSM
6、SE)来连接刚刚建好的数据库服务器【SQLEXPRESS】 ,如果有多个服务器实例,则可以点击下拉菜单来选择(如果一个服务器都没有,则说明你的之前的配置有问题。 ) 。点击【连接】 ,之后如果连接成功就会出现下面所示的界面。到此为 SQL SERVER 2005 就配置完成了。5. 配置 ODBC+系统 DSN 数据源下面来讲解创建【系统 DSN】数据源并绑定【数据库】的方法。首先,在利用 Microsoft SQL Server Management Studio Express (SSMSE)新建一个数据库exp(名称随意) 。之后找到【ODBC 数据源管理器】 (【开始】【控制面板】【管
7、理工具】【数据源(ODBC) 】 ) ,转到【系统 DSN】中,点击【添加】 。注:选择【系统 DSN】才可以让别的用户来访问该数据源;如果选择【用户 DSN】 ,则只有当前用户才可以使用该数据源。选择【SQL Native Client】驱动程序 【完成】 。设置数据源名称:【DBSTestSQLServer】( 这是你之后用 PHP 的 odbc 函数来连接时使用的DSN 名称 ),点击【服务器】下拉框(这个操作会耗点时间)一会之后在出现的条目中选择你要连接的【数据库服务器】 ,这里我用的是最后一个【SQLEXPRESS】【下一步】。按如下方式选择【下一步】 。勾选【更改默认的数据为】点击
8、下拉框,选择已经建好的数据库【exp 】 (前面建的。根据你建的数据库名来选择)【下一步】之后的步骤就保持默认设置就可以了。设置完成之后会出现下面这个。点击【测试数据源】如果出现了下面的结果,那么恭喜你!数据源配置成功了!现在就可以在系统 DSN 中看到刚刚建好的数据源了。6. 在 PHP 中测试数据源及 ODBC 查插删改操作运行 WampServer(用于构建 Apache+PHP 的环境) 。利用 Zend Studio 编辑测试页面。6.1. Apache 配置:定位到 WampServer 安装目录,转到 binapacheapache2.2.22conf目录,打开 httpd.co
9、nf。找到如下位置并进行相应修改:#端口号,不般用这个默认的就可以了。ServerName localhost:80#这个是网站根目录,根据你的实际情况配置。当在浏览器中输入 localhost 的时候就是访问的这个文件夹。DocumentRoot “E:/programming/practice/web/php/“Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all#设置访问权限。Options Indexes FollowSymLinksAllowOverride allOrder Deny,AllowA
10、llow from all6.2. 编码问题SQL Server 中的中文编码是 gbk,所以 php 文件的编码也使用 gbk(ANSI ) ,输出的网页也要指定编码为 gbk 或 gb2312。如果其中一个不一样,那么中文就会出现乱码。6.3. 测试结果:附:PHP 测试代码,,复制之后保存为 db_test.php 文件,以 ANSI 编码保存。Access DB TestConnect DB Test;print .odbc_field_name($rs, 1).odbc_field_name($rs, 2).odbc_field_name($rs, 3).;while(odbc_fe
11、tch_row($rs)print ;print .odbc_result($rs, id).;print .odbc_result($rs, bID).;print .odbc_result($rs, bName).;print ;print ;function insertTestData($conn)static $i = 0;for($j = 0; $j connecting db;$conn = odbc_connect (“DBSTestSQLServer“ , “, “, SQL_CUR_USE_ODBC ) or die(fail to connect db);/* 建表并显示
12、结果*/print createTable($conn).;print “Table is :“;$tableRs = odbc_tables($conn, null, null, book, TABLE);while(odbc_fetch_row($tableRs)print odbc_result($tableRs, TABLE_NAME).;/* 插入测试数据*/insertTestData($conn);print 插入的数据: ;showAll($conn, book);/* 删除数据*/deleteAll($conn, book);print 删除所有数据之后: ;showAll($conn, book);/* 关闭数据连接*/odbc_close ( $conn );?