登录注册
上海交通大学论坛 > 数据库 > 浏览当前帖子 手机版 关闭左侧栏
请教:如何用php访问oracle
返回本版】  【发表帖子】  【回复帖子 浏览量  4110      回帖数 3
laoshu421    等级  

楼主 发表于  2007/3/26 10:49:49    编 辑   


使用Ora_logon("user","password")时提示Call to undefined function
我用的是linux,请问各位如何处理,先谢谢了。 
qiaofog    等级  

2 楼 发表于  2016/3/2 3:02:45    编 辑   


在安装 PHP 及 Apache Server 之前先将 Oracle 数据库安装好, 
并确定 Oracle 能够顺利运作。之后在 PHP 配置 (configure) 时加入 --with-oracle=D 
IR 的选项,DIR 就是 $ORACLE_HOME 环境变量,例如: 
./configure --with-oracle=/abc/def/oracle/product/7.0.3 --with-apache=../apach 
e_1.3.x --enable-track-vars 

以下的范例是 stevel@nettek-llc.com (22-Jan-1999) 所提供的。这个范例是返回 Orac 
le 中 sid1 数据库 (Database) 的 EMP 资料表 (Table) 所有资料。帐号是 SCOTT、密码 
为 TIGER。 

<?php 

putenv("ORACLE_SID=sid1"); 
putenv("ORACLE_HOME=/u01/app/oracle/product/8.0.5"); 

$handle = ora_plogon("SCOTT@sid1",  "TIGER") or die; 
$cursor = ora_open($handle); 
ora_commitoff($handle); 

$query = "SELECT * FROM EMP"; 
ora_parse($cursor, $query) or die; 
ora_exec($cursor); 

echo  "<HTML><PRE>\n"; 
echo  "$query\n\n"; 
$numcols = 0; 
while(ora_fetch($cursor)) { 
    $numcols = ora_numcols($cursor); 
    for ($column=0; $column < $numcols; $column++) { 
        $data = trim(ora_getcolumn($cursor, $column)); 
        if($data ==  "") $data = "NULL"; 
        echo  "$data\t"; 
    } 
    echo  "\n"; 

$numrows = ora_numrows($cursor); 
echo  "\nROWS RETURNED$numrows\n"; 
echo  "</PRE></HTML>\n"; 

ora_close($cursor); 

?> 


kk@shonline.de (05-Aug-1998) 指出 ORACLE_HOME 为 Oracle 的安装路径,ORACLE_SID 
 为 Oracle 的数据库名称,若不知道这二个环境变量可以用 sqlplus 连上 Oracle 来查 
证。 

  


Ora_Bind链接 PHP 变量到 Oracle 参数。  
Ora_Close关闭一个 Oracle 的 cursor。  
Ora_ColumnName得到 Oracle 返回列 (Column) 的名称。  
Ora_ColumnType得到 Oracle 返回列 (Column) 的类型。  
Ora_Commit将 Oracle 的交易处理付诸实行。  
Ora_CommitOff关闭自动执行 Oracle 交易改动的功能。  
Ora_CommitOn打开自动执行 Oracle 交易改动的功能。  
Ora_Error获得 Oracle 错误信息。  
Ora_ErrorCode获得 Oracle 错误代码。  
Ora_Exec执行 Oracle 的指令部分。  
Ora_Fetch取得返回资料的一列 (row)。  
Ora_GetColumn从返回列 (row) 的资料取得一栏 (column)。  
Ora_Logoff结束与 Oracle 的链接。  
Ora_Logon打开与 Oracle 的链接。  
Ora_Open打开 Oracle 的 cursor。  
Ora_Parse分析 SQL 语法。  
Ora_Rollback撤消当前交易。  
Ora_Do快速的 SQL 查询。  
Ora_FetchInto取回 Oracle 资料放入数组。  
Ora_ColumnSize取得字段类型的大小。  
Ora_Numcols取得字段的数目。  
Ora_PLogon打开与 Oracle 的长期链接。  

PS:摘自PHP4完全中文手册 

    等级  

3 楼 发表于  2016/3/2 3:02:45    编 辑   


我估计你可能是没有正确配置好PHP,没有把Oracle编译进去,否则PHP至少应该能识别这 
个函数,而不会说不认识这个函数。 

 

使用Ora_logon("user","password")时提示Call to undefined function
我用的是linux,请问各位如何处理,先谢谢了。 

-- 




 

我用访问远端oralce数据库,设置$ORACLE_HOME没什么用吧,能告诉我如何访问远端ora 
风住尘香    等级  

4 楼 发表于  2016/3/2 3:02:45    编 辑   


如果要让PHP可以访问远端的ORACLE,那么至少要保证如下几个方面: 
1.在安装PHP,configure的时候要with-oracle 
2.在你的Web Server上要安装Oracle Client并且配置好TNS 
3.设置环境变量(SERVICE_NAME,PORT,USER,PASSWD) 
4.当然还要保证的Oracle DB是available的 
1
表情
所有内容均为会员自愿发表,并不代表本站立场.
论坛帮助 会员认证删帖申请 联系我们