怎么建立表之间的关联?
请问怎么在两张表之间建立关联,如通过用户名来关联?
作者 lxh2002 发布于 2003-08-02 分类:php基础编程
我在A机器上安装了Oracle8.1.6服务器。
B机器是RedLinux9.0,安装了Oracle8.1.6客户端且安装时
选择了定制安装,然后选中了所有的组件。安装完后,
配置PHP,编译时加了如下的参数(其它省略):
--with-oracle=/oracle/product/8.1.6
--with-oci8=/oracle/product/8.1.6
环境变量也正确的设置了,因为Net8配置我已经连通了
A机的数据库服务器。但编译PHP时得到如下提示:
Oracle-OCI8 needed libraries not found
去除--with-oci8后也得到类似的提示,编译无法进行下去。
这究竟是怎么回事啊,哥哥姐姐帮帮我吧!
愁眉苦脸的说:(
逛论坛交流:装了Oracle8.1.6客户端,PHP怎么编译不了支持OCI8和Oracle呢?
经过反反复复的试验(不下十遍Oracle安装,换了两个版本(8.1.7,8.1.6)都不行,原以为是Oracle没有拷贝完全文件
,好在我早留有几个重要文件),仔细检查PHP安装目录下
面的configure文件,里面有这几行:
...
elif test -f $OCI8_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.8.0 then
$OCI8_VERSION=8.1
.....
else{
echo "configure: error: Oracle-OCI8 needed libraries not found ...."
...
所以我才知道这里缺的是一个共享文件,名字为
libclntsh.so.8.0
经过分析,我把这个文件拷贝到$ORACLE_HOME/lib下面,重新
编译PHP,后来一切顺利!!
原来我在Redhat9中强行安装了7.3版本的compat*.rpm包(因为
Oracle8i要求有glibc6.2.1系列兼容包的支持。
后来,我将Redhat9中的所有以compat开头的包全部强行删除:
rpm -e compat* --nodeps
然后再找到Redhat9的安装光盘,以“升级”的方式安装软件,
选中所有以compat开头的软件包(之后会提示依赖一个libtcl名
字的包,默认会安装上去),安装结束之后,我再删除前面的
Oracle8i安装文件,重新Oracle安装,就再也没有出现任何错误
信息。PHP也能正确的和Oracle及OCI8编译了。
我总结了安装Oracle、PHP的如下几点应特别注意事项:
1、环境变量设置(vi /home/oracle/.bash_profile)
export LD_ASSUME_KERNEL=2.2.5
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/8.1.7
export NLS_LANGUAGE=AMERICAN
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH
ORACLE_HOME/bin
#export ORACLE_SID=dnsdb
unset LANG
这里的LD_ASSUME_KERNEL好像只能为2.2.5,我改为Redhat9
内核的版本号就无法运行runInstaller程序;LANG必须要unset掉,
否则安装界面的文字全部重叠到一起去了。
2、一定只能安装Redhat9自带的compat*.rpm软件包。当我安装
Redhat7.3带的这些包时,就出现了上面古里古怪问题。
2 条回复
回复