0.背景

数据库实验要求必须用PHP/ASP, SQL SERVER /ACCESS,ODBC+系统DSN。环境很不好配置(特别是在Win7 64位的环境下)。之前试过用PHP+ACCESS+ODBC+系统DSN,但测试的时候却报了错误,说数据库驱动与PHP的架构不一样(网上找了一下:是因为32位的数据库驱动与64位的PHP不兼容)。后来改用用PHP+SQLServer+ODBC+系统DSN的搭配,也整了将近一天才把环境配好。所以我把配置过详细总结了一下,以备日后不时之需。

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. wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-x64.exe

apache + php + mysql集成软件,安装以后就可以使用了,而无需什么配置(只需要配一下网站根目录)。

4. ZendStudio

非必须。这是一个PHP的IDE,在eclipse的基础开发的。

2. 环境

Win7旗舰版

3. 安装SQL Server 2005 Express Edition主要步骤

首先运行SQLEXPR_CHS.EXE。下图是系统配置检查结果

显示了一些警告信息,但无关紧要,除非你用到了ASP.NET。

进入功能选择菜单后,将【连接组件】选中(主要用于命令行访问数据库服务器),可以点击【浏览】改变数据库安装位置。

之后是设置数据库服务器实例名:选择【命名实例】,可以输入实例名(此实例名就是安装完成之后SQLServer服务器的名称(会转为全大写形式)),或使用它给的实例名。如果选择【默认实例】:那么实例名将是MSSQLSERVER。

注:【实例名】是用于区分同一台机器上安装的各个不同配置的SQLServer服务器的。SQLServer可以是同一个版或不同版。

在设置服务帐户时:我选择的是【使用内置系统帐户:Local system】

点击【下一步】之后进行身份验证模式。选择【Windows身份验证模式】(此处主要是为了通过ODBC连接数据库时不使用密码)。当然如果你需要更高的安全性也可以选择另外一个,并输入密码。

之后的步骤就比较简单了,按下面的图操作就可以了。

4. 配置SQL Server 2005 Express

找到安装好的SQLServer2005,选择SQL Server 外围应用配置器。

在出现的界面点击【服务和连接的外围应用配置器】

之后会出现下图所示的界面。当此界面中你就可以看到之后建立的所有【数据库服务器实例】,并可以对其进行配置。(下图是最新的图,其它的图还是用的以前的,所以别的图中没有SQLNEWINSTANCE这个服务器)。选中你要使用的【数据库服务器】(此处我选的是SQLEXPRESS),然后点击其【远程连接】→【本地连接和远程连接】,选择【同时使用TCP/IP和named pipes】(这么做是为了使用ODBC连接数据库服务器)→(重启服务)点击【服务】→【停止】→【启动】→OK这就基本配置完了。

这时候你用【SQL Server配置管理器】就可以去查看服务状态了。要保证SQLServer(SQLEXPRESS)处于运行状态。

如果有端口冲突之类的问题,可以点击【SQLEXPRESS的协议】→【TCP/IP】进行配置。配置方法参见:http://blog.163.com/china0359@yeah/blog/static/121719436201235545362/

下面就可以利用你安装的Microsoft SQL Server Management Studio Express (SSMSE)来连接刚刚建好的数据库服务器【SQLEXPRESS】,如果有多个服务器实例,则可以点击下拉菜单来选择(如果一个服务器都没有,则说明你的之前的配置有问题。)。

点击【连接】,之后如果连接成功就会出现下面所示的界面。到此为SQL SERVER 2005就配置完成了。√

5. 配置ODBC+系统DSN数据源

下面来讲解创建【系统DSN】数据源并绑定【数据库】的方法。

首先,在利用Microsoft SQL Server Management Studio Express (SSMSE)新建一个数据库exp(名称随意)。

之后找到【ODBC数据源管理器】(【开始】→【控制面板】→【管理工具】→【数据源(ODBC)】),转到【系统DSN】中,点击【添加】。

注:选择【系统DSN】才可以让别的用户来访问该数据源;如果选择【用户DSN】,则只有当前用户才可以使用该数据源。

选择【SQL Native Client】驱动程序→【完成】。

设置数据源名称:【DBSTestSQLServer】(这是你之后用PHP的odbc函数来连接时使用的DSN名称),点击【服务器】下拉框(这个操作会耗点时间)→一会之后在出现的条目中选择你要连接的【数据库服务器】,这里我用的是最后一个【SQLEXPRESS】→【下一步】。

按如下方式选择→【下一步】。

勾选【更改默认的数据为】→点击下拉框,选择已经建好的数据库【exp】(前面建的。根据你建的数据库名来选择)→【下一步】→之后的步骤就保持默认设置就可以了。

设置完成之后会出现下面这个。点击【测试数据源】

如果出现了下面的结果,那么恭喜你!数据源配置成功了!

现在就可以在系统DSN中看到刚刚建好的数据源了。

6. 在PHP中测试数据源及ODBC查插删改操作

运行WampServer(用于构建Apache+PHP的环境)。利用Zend Studio编辑测试页面。

6.1. Apache配置:

定位到WampServer安装目录,转到bin\apache\apache2.2.22\conf\目录,打开httpd.conf。

找到如下位置并进行相应修改:

#端口号,不般用这个默认的就可以了。

ServerName localhost:80

#这个是网站根目录,根据你的实际情况配置。当在浏览器中输入localhost的时候就是访问的这个文件夹。

DocumentRoot "E:/programming/practice/web/php/"

<Directory />

Options FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

</Directory>

#设置访问权限。

<Directory "E:/programming/practice/web/php/">

Options Indexes FollowSymLinks

AllowOverride all

Order Deny,Allow

Allow from all

</Directory>

6.2. 编码问题

SQL Server中的中文编码是gbk,所以php文件的编码也使用gbk(ANSI),输出的网页也要指定编码为gbk或gb2312。如果其中一个不一样,那么中文就会出现乱码。

6.3. 测试结果:

附:PHP测试代码。

复制之后保存为db_test.php文件,以ANSI编码保存。

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>Access DB Test</title>

</head>

<body>

<h1 align="center">Connect DB Test</h1>

<?php

//

// 数据库操作函数

//

function deleteAll($conn, $table)

{

$sql = 'DELETE FROM '.$table.' WHERE 1=1';

odbc_exec($conn, $sql);

}

function showAll($conn, $table)

{

$sql = 'SELECT id, bID, bName FROM '.$table;

$rs = odbc_do($conn, $sql);

print '<table border="1">';

print '<tr><td>'.odbc_field_name($rs, 1).'</td><td>'.odbc_field_name($rs, 2).'</td><td>'.odbc_field_name($rs, 3).'</td></tr>';

while(odbc_fetch_row($rs))

{

print '<tr>';

print '<td>'.odbc_result($rs, 'id').'</td>';

print '<td>'.odbc_result($rs, 'bID').'</td>';

print '<td>'.odbc_result($rs, 'bName').'</td>';

print '</tr>';

}

print '</table>';

}

function insertTestData($conn)

{

static $i = 0;

for($j = 0; $j < 10; $j++)

{

$insertSql = 'INSERT INTO book (bID, bName) VALUES (\'ISBN 7-5325-2480-'.$i.'\',\'测试'.$i++.'\')';

odbc_exec($conn, $insertSql);

}

}

function createTable($conn)

{

$tableRs = odbc_tables($conn, null, null, 'book', 'TABLE');

if(odbc_fetch_row($tableRs) )

{

return 'table already exists.';

}

$createSql =

('CREATE TABLE book'.

'('.

'id INT IDENTITY(1, 1) PRIMARY KEY,'.

'bID VARCHAR(30) NOT NULL,'.

'bName NVARCHAR(30) NOT NULL,'.

')'

);

odbc_do($conn, $createSql);

return 'table created!';

}

//

// 测试流程

//

print '<pre>connecting db....</pre>';

$conn = odbc_connect ("DBSTestSQLServer" , "", "", SQL_CUR_USE_ODBC ) or die('fail to connect db');

/**

* 建表并显示结果

*/

print createTable($conn).'<br>';

print "Table is :<br>";

$tableRs = odbc_tables($conn, null, null, 'book', 'TABLE');

while(odbc_fetch_row($tableRs))

{

print odbc_result($tableRs, 'TABLE_NAME').'<br>';

}

/**

* 插入测试数据

*/

insertTestData($conn);

print '<hr>插入的数据: <br>';

showAll($conn, 'book');

/**

* 删除数据

*/

deleteAll($conn, 'book');

print '删除所有数据之后: <br>';

showAll($conn, 'book');

/**

* 关闭数据连接

*/

odbc_close ( $conn );

?>

</body>

</html>

PHP+SQLServer2005+Apache/系统DSN配置+ODBC查插删改相关推荐

  1. 系统dsn oracle,linux平台配置oracle odbc dsn的方法.docx

    linux平台配置oracle odbc dsn的方法.docx LINUX平台配置ORACLEODBCDSN的方法1DSN配置方法ORACLE11编辑配置文件一.OSRHEL5X86(ORACLED ...

  2. ODBC管理器中用户DSN,系统DSN,文件DSN的含义及用法

    ODBC(Open Database Connectivity) DSN(Data Source Name) "ODBC数据源管理器"提供了三种DSN,分别为用户DSN.系统DSN ...

  3. ODBC中用户DSN、系统DSN、文件DSN各代表的含义

    ODBC(Open Database Connectivity,ODBC) 即开放数据库互连 DSN   (Data Source Name  )    即 数据源名称       ODBC中有用户D ...

  4. apache camel 相关配置_小白在 linux 系统部署apache、mysql、Laravel 环境学习笔记!

    在 linux 系统部署apache.mysql.Laravel 环境 一.在 CentOS 7.2 服务器下 部署 apache yum clean all --- 功能是:清除系统垃圾 yum - ...

  5. 64位win7搭建php mysql_Win7 64位操作系统下配置PHP+MySql+Apache环境

    一.安装软件准备 软件版本以本人安装为例,其他版本同理,软件到各官网下载 1.Apache(httpd-2.2.19-win64) 2.PHP(php-5.3.6-Win32-VC9-x64) 3.M ...

  6. Ubuntu Kylin系统中配置Apache服务器

    Ubuntu Kylin 知名Linux操作系统发行版Ubuntu发布了中国定制版的操作系统 -- UbuntuKylin (优麒麟系统).这是 Canonical 公司与我国工信部 CCN 开源创新 ...

  7. windows ODBC数据源管理程序(64位) 添加系统DSN时没有Microsoft Acess Driver(*.mdb,*.accdb)选项的解决办法

    最近在使用Access2013 64位版导入excel更新CIS库时,突然提示我向导没有安装或者损坏,就干脆卸载了office2013,直接安装office2016 X64 安装成功后,发现Acces ...

  8. win7 64 php mysql_Win7 64位操作系统下配置PHP+MySql+Apache环境

    一.安装软件准备 软件版本以本人安装为例,其他版本同理,软件到各官网下载 1.Apache(httpd-2.2.19-win64) 2.PHP(php-5.3.6-Win32-VC9-x64) 3.M ...

  9. 64位win7搭建php mysql_[转]Win7 64位操作系统下配置PHP+MySql+Apache环境

    Win7 64位操作系统下配置PHP+MySql+Apache环境 注: 1./* */ 之间的为步骤或注释,不要粘到配置文件内 2.Apach配置时是用的"/",而php配置时用 ...

最新文章

  1. 区块链应用 | 区块链将永久改变法律行业的七种方式
  2. Yii学习笔记:利用setFlash和runController打造个性化的提示信息页面
  3. Linux(Ubuntu)下MySQL的安装与配置
  4. react 中子组件调用父组件的方法
  5. 工作project里的Verilog记录
  6. SQLServer2008 Transact_SQL语言基础实例
  7. An example of EXPORT / IMPORT usage - in office integration and odata metadata model cache
  8. TCP 三次握手四次挥手
  9. MFC SDI 中 通过注册表保存当前窗体的 显示状态位置
  10. 函数指针使用场景和选择_在N + 1场景中使用@NamedEntityGraph更有选择地加载JPA实体...
  11. python的编程环境都不会搭建_9102年你还不会搭建Python环境
  12. sql server browser启动不了_沐浴书香,润泽童年 | 读书月启动仪式
  13. Java中数据类型转换大全(个人总结)
  14. 手机页面内容超出屏幕宽度时实现可拖拉滑动效果
  15. 奶茶店收银系统php版,奶茶店收银系统
  16. 如何做好终端安全管理?
  17. cocos2dx 3d开源项目 fantasyWarrior3D 从零走起 6完结 [AttackManagerGameMaster]
  18. 乌镇现场 | 倪光南:人工智能应该更好的为人类的服务
  19. 17track包裹单个物流轨迹抓取(一)
  20. 计算机应用基础项目化教程答案熊云,计算机应用基础习题与上机实验指导

热门文章

  1. 中国计算机设计大赛来啦!用飞桨驱动智慧救援机器狗
  2. SQL数据库中日期函数
  3. 【CodeForce】559B Equivalent Strings 等效字符串
  4. 北京公共计算机考试准考证打印
  5. 学习成长之路 (初章 三个月建成微信 小程序商城、ArcEngine C# GIS开发入门)
  6. 5G组网和非独立组网
  7. OSChina 周四乱弹 —— 你妈是洗衣机的亲妈
  8. android 集成高德地图打包后报 key-location Error, ErrCode:7 的问题
  9. Linux环境Font font = new Font() 中文乱码 (带字体资源)
  10. Scratch软件编程等级考试四级——20210626