1、PHP代码中函数前面的@是什么意思?
答:@的作用是忽略调用该函数时产生的错误信息。
2、为什么出现“APACHE.EXE: cannot determine local host name.”?
答:由于Windows版本的Apache默认情况下不指定ServerName,所以运行时会出错。 解决的办法是修改Apache安装目录下的conf目录下的httpd.conf:
- 搜索ServerName
- 去掉前面的#号
- 把ServerName后面的值换成你自己的设置,如localhost之类的
- 保存,重新启动Apache
3、在Windows NT/9x,为什么会出现“Can't connect to MySQL server on 'localhost' <10061>”?
答:MySQL虽然小巧,但毕竟不同于一般的文件数据库,而是一个应用服务器,所以在使用客户程序如mysql之前,必须启动MySQL服务器。方法是在MySQL的bin目录下运行(哪个文件存在就运行哪个):
mysqld.exe
或
mysqld-shareware.exe
4、关于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 同机;
使用一直正常.
(由Sunny Wang提供)
5、为什么在WINDOWS下使用PHP4的SESSION功能老是报路径出错?
答:这个可能是PHP4.0在WINDOWS下的一个BUG,希望能在以后的版本里得到彻底解决。目前的解决办法是把保存SESSION的路径设为当前路径(只有这样,才不会包错)。
方法是修改php.ini,把
session.save_path
的值设为
./
6、如何在WIN2K下把MYSQL安装成自动的服务?
答:MYSQL在WINDOWS NT 4下很容易被安装成自动启动的服务,但WINDOWS 2000下却要出错?为什么呢?经过查找终于发现了问题所在:
执行mysqld-shareware --install后,将在WINDOWS的服务里增加一项,但这项的执行文件却是mysqld.exe,而不是mysqld-shareware.exe,所以,我的解决办法是把mysqld-shareware.exe复制为mysqld.exe。再启动WINDOWS 2000,一切OK!
7、运行PHP4出现X-Powered-By和Content-type: text/html问题的解决
答:这两条信息本来是HTTP协议头的一部分,也就是说它们是不应该出现在浏览器里的,但为何却出现了呢?
原因是在PHP输出这两条信息之前已经有过浏览器不认识(不是HTTP协议头)的内容,最大的可能就是PHP本身出错,比如调用某个DLL时。
解决的办法是在DOS提示符下运行:
C:\PHP\PHP.EXE
(注意要换成你自己的PHP目录)
看看是否有什么不正常的信息,然后看情况休整错误即可。
8、如何从Linux下访问Microsoft SQL Server?
答:Bill Gates肯定不会提供Linux下的MS SQL驱动程序,那么如何从Linux下访问MS SQL呢?请看:
确认能够通过TCP/IP PING通MS SQL服务器的那台机器
确认MS SQL上建立了基于TCP/IP的连接方式,默认情况下是命名管道的
对于MS SQL 6.5及更低版本,用Sybase CT库就足够了;对于MS SQL 7及以上版本,要用到TDS。要得到Sybase CT库,有两个办法:到这里下载SYBASE ASE 11.0.3(几十M),或到这里下载SYBASE CT库(几M)。至于TDS,可以到其官方站点去下载。
设置指向MS SQL服务器的interface文件,这里有个例子:
--------------------------------------
nt
master tcp ether 192.168.0.1 1443
query tcp ether 192.168.0.1 1443
--------------------------------------
其中1443是MS SQL服务器的默认端口号
以SYBASE的用户登陆到Linux,测试和MS SQL之间的连接:
isql -U -P -S
如:
isql -Uhunte -Pmypass -Snt
看能够执行一些查询。
参考PHP/TDS的编译指南,把所需的库编译进PHP:
./configure --with-sybase=/path/to/sybase