问:关于PHP与Sybase数据库的连接与使用
答:
很高兴看到大家在使用Sybase,在使用本站php_sybct.dll模块时,不少网友遇到问题,
现将网友们的问题解释如下:
1.注意你的PHP版本,我只使用PHP官方源代码(http://php.net)编译PHP.而且,在PHP4里,我发现
每一个版本都稍有区别(主要与ZEND有关),因此PHP4的模块严格区分PHP版本,PHP4RC1的模块不
可能在PHP4.0.0中使用.有网友使用swwwing.com公司的PHP编译版,我不能保证你一定能使用本
模块.
2.正确配置你的PHP,保证你的机器在系统可遍历的路径里只有一个php.ini,并配置正确,建议的
做法: 将php_sybct.dll拷至php4所在目录,如c:\php4,修改php.ini(一般位于Windows目录或
WinNT目录)中extension_dir=c:\php4 增加 extension=php_sybct.dll 注意=号两边不要有空
格;运行php_info();,查看PHP输出信息,若找到sybase_ct信息,证明模块加载成功.否则,就是
你的PHP版本与本模块不匹配.其实最简单办法是看有没有什么 'X-Powered By...' 信息,若有,
则模块肯定与PHP版本不匹配!
3.正确安装并配置好Sybase Client端,PHP连接Sybase数据库不是凭空的,它需要Sybase Client
DLL的支持.使用SQLEDIT为Web数据库增加一个数据服务(当然,这不是必须的,你可以使用现有
的数据服务)SybWeb,正确填写配置参数后,存盘退出. 使用SybasePing工具,确保SybWeb服务能
ping通Sybase Server.
4.编写PHP代码,连接数据库,使用sybase_pconnect("SybWeb","sa","sapass");//sapass为sa用
户的连接密码.Sybase会提示诸如"changed database to master..."等信息,若想屏蔽这些信
息,可在函数前加'@',sybase_select_db("Your DataBase Name")函数前也应加'@'.
5.其它问题:
*关于非法操作
其一可能与本机有关,如Sybase Client安装不正确,或Win9x系统有问题.你可以移植到WinNT
试试;
其二可能与Sybase Client版本有关,我使用SybaseCT Version 11.0.2编译的本模块,后来有网
友提供了Version 11.9.2,我将在PHP4.0.1(含)以后的版本中使用.就像MSSQL有65与70一
样,Sybase也会有版本区分.此模块我发给过不少国外的网友,他们使用都很正常.我想是因
为老外不像国人那么时髦,什么都用最新的缘故.
*关于Linux或UNIX下Sybase的连接
我没有使用两种系统下的Sybase,因此无法测试,但国内外都有网友使用本模块成功的建立了与
Sybase for Lunix的连接.我想都是基于TCP/IP的,并不奇怪.不过,应注意,此时的SybWeb服务应
基于TCP/IP(NLWNSCK)而不是命名管道(NLMSNMP).
*关于Sybase SQL Any Where
有网友使用本模块连接 Sybase SQL Any Where,这是Sybase的一种小型化的基于桌面的数据库
系统,可能无法使用本模块.
我使用Win98+Apache1.3.12+Sybase system 11(Client)+PHP4.0.0作开发;
数据库为 WinNT4+Sybase system11;
Web Server为Apache1.3.12(运行于WinNT)+PHP4.0.0,暂时与数据库 Server 同机;
使用一直正常.
答:
很高兴看到大家在使用Sybase,在使用本站php_sybct.dll模块时,不少网友遇到问题,
现将网友们的问题解释如下:
1.注意你的PHP版本,我只使用PHP官方源代码(http://php.net)编译PHP.而且,在PHP4里,我发现
每一个版本都稍有区别(主要与ZEND有关),因此PHP4的模块严格区分PHP版本,PHP4RC1的模块不
可能在PHP4.0.0中使用.有网友使用swwwing.com公司的PHP编译版,我不能保证你一定能使用本
模块.
2.正确配置你的PHP,保证你的机器在系统可遍历的路径里只有一个php.ini,并配置正确,建议的
做法: 将php_sybct.dll拷至php4所在目录,如c:\php4,修改php.ini(一般位于Windows目录或
WinNT目录)中extension_dir=c:\php4 增加 extension=php_sybct.dll 注意=号两边不要有空
格;运行php_info();,查看PHP输出信息,若找到sybase_ct信息,证明模块加载成功.否则,就是
你的PHP版本与本模块不匹配.其实最简单办法是看有没有什么 'X-Powered By...' 信息,若有,
则模块肯定与PHP版本不匹配!
3.正确安装并配置好Sybase Client端,PHP连接Sybase数据库不是凭空的,它需要Sybase Client
DLL的支持.使用SQLEDIT为Web数据库增加一个数据服务(当然,这不是必须的,你可以使用现有
的数据服务)SybWeb,正确填写配置参数后,存盘退出. 使用SybasePing工具,确保SybWeb服务能
ping通Sybase Server.
4.编写PHP代码,连接数据库,使用sybase_pconnect("SybWeb","sa","sapass");//sapass为sa用
户的连接密码.Sybase会提示诸如"changed database to master..."等信息,若想屏蔽这些信
息,可在函数前加'@',sybase_select_db("Your DataBase Name")函数前也应加'@'.
5.其它问题:
*关于非法操作
其一可能与本机有关,如Sybase Client安装不正确,或Win9x系统有问题.你可以移植到WinNT
试试;
其二可能与Sybase Client版本有关,我使用SybaseCT Version 11.0.2编译的本模块,后来有网
友提供了Version 11.9.2,我将在PHP4.0.1(含)以后的版本中使用.就像MSSQL有65与70一
样,Sybase也会有版本区分.此模块我发给过不少国外的网友,他们使用都很正常.我想是因
为老外不像国人那么时髦,什么都用最新的缘故.
*关于Linux或UNIX下Sybase的连接
我没有使用两种系统下的Sybase,因此无法测试,但国内外都有网友使用本模块成功的建立了与
Sybase for Lunix的连接.我想都是基于TCP/IP的,并不奇怪.不过,应注意,此时的SybWeb服务应
基于TCP/IP(NLWNSCK)而不是命名管道(NLMSNMP).
*关于Sybase SQL Any Where
有网友使用本模块连接 Sybase SQL Any Where,这是Sybase的一种小型化的基于桌面的数据库
系统,可能无法使用本模块.
我使用Win98+Apache1.3.12+Sybase system 11(Client)+PHP4.0.0作开发;
数据库为 WinNT4+Sybase system11;
Web Server为Apache1.3.12(运行于WinNT)+PHP4.0.0,暂时与数据库 Server 同机;
使用一直正常.
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=3145