设为首页   加入最爱           最新更新:全方位英文文章资料库
 
资料坊搜索: 标题 全文     
php数据库连接
   首页>>YesizeCOM>>电脑技能坊>>PHP>>正文       
 
广告招租,e-mail:yesize@hotmail.com

广告招租,e-mail:yesize@hotmail.com


通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。   
PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。如前所述,你的PHP安装选项应该可以支持两者的使用。   
想获得更多有关在Microsoft  Windows平台上安装支持PHP3的Apache服务器的知识以及更多有关Oracle数据库的知识,请查阅以下URL:www.csoft.net/~vsbabu/articles/oraphp.html。   
4.1  连接   

if  ($conn=Ora_Logon(user@TNSNAME,password))     
{   
echo  SUCCESS  !  Connected  to  database\n;   
}     
else     
{   
echo  Failed  :-(  Could  not  connect  to  database\n;   
}   
Ora_Logoff($conn);   
phpinfo();   
?>   
以上代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。   

4.2  查询   

假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的代码演示了一个连接并查询的典型例子:   
/*   
*  连接数据库并执行查询   
*/   
function  printoraerr($in_cur)   
{   
//  检查Oracle是否出错   
//  如果存在错误则显示   
//  当指针被激活时每次请求Oracle后调用该函数   
if(ora_errorcode($in_cur))   
echo  Oracle  code  -  .ora_error($in_cur).\n;   
return;   
}   
/**  主程序  */   
if  (!($conn=ora_logon(user@TNSNAME,password)))     
{   
echo  Connection  to  database  failed\n;   
exit;   
}   
echo  Connected  as  connection  -  $conn
\n;   
echo  Opening  cursor  ...
\n;   
$cursor=ora_open($conn);  printoraerr($cursor);   
echo  Opened  cursor  -  $cursor
\n;   
$qry=select  user,sysdate  from  dual;   
echo  Parsing  the  query  $qry  ...
\n;   
ora_parse($cursor,$qry,0);  printoraerr($cursor);   
echo  Query  parsed   
\n;   
echo  Executing  cursor  ...
\n;   
ora_exec($cursor);  printoraerr($cursor);   
echo  Executed  cursor
\n;   
echo  Fetching  cursor  ...
\n;   
while(ora_fetch($cursor))   
{   
$user=ora_getcolumn($cursor,0);  printoraerr($cursor);   
$sysdate=ora_getcolumn($cursor,1);  printoraerr($cursor);   
echo    row  =  $user,  $sysdate   
\n;   
}   
echo  Fetched  all  records
\n;   
echo  Closing  cursor  ...
\n;   
ora_close($cursor);   
echo  Closed  cursor
\n;   
echo  Logging  off  from  oracle...   
\n;   
ora_logoff($conn);   
echo  Logged  off  from  oracle   
\n;   
?>   
(译者注:以上代码段缺少注释,请读者参考PHP  Manual的Oracle数据库函数部分)   

4.3  显示结果   

以下代码演示了怎样查询数据库并将结果输出:   
function  printoraerr($in_cur,  $conn)   
{   
//  检查Oracle是否出错   
//  如果存在错误则显示   
//  当指针被激活时每次请求Oracle后调用该函数   
//  If  it  encountered  an  error,  we  exit  immediately   
if(ora_errorcode($in_cur))     
{   
echo  Oracle  code  -  .ora_error($in_cur).
n;   
ora_logoff($conn);   
exit;   
}   
return;   
}   

function  exequery($w_qry,$conn)     
{   
$cursor=ora_open($conn);  printoraerr($cursor,$conn);   
ora_parse($cursor,$w_qry,0);  printoraerr($cursor,$conn);   
ora_exec($cursor);  printoraerr($cursor,$conn);   
$numrows=0;   
$w_numcols=ora_numcols($cursor);   
//  显示头部   
echo     

  \n;   
for  ($i=0;$i<$w_numcols;$i++)   
{   
$align=(ora_columntype($cursor,$i)==NUMBER)?RIGHT:LEFT;   
echo  \t  .ora_columnname($cursor,$i).  \n;   
}   
echo     
\n;   
while(ora_fetch($cursor))   
{   
echo    \n;   
for  ($i=0;$i<$w_numcols;$i++)     
{   
$align=(ora_columntype($cursor,$i)==NUMBER)?RIGHT:LEFT;   
if(ora_columntype($cursor,$i)==LONG)   
echo    .
ora_getcolumn($cursor,$i).
  \n;   
else   
echo    .ora_getcolumn($cursor,$i).  \n;   
printoraerr($cursor,$conn);   
}   
$numrows++;   
echo     
\n;   
}   
if  ($numrows==0)   
echo    Query  returned  no  records   
   
\n;   
else     
{   
echo    \n;   
echo    Count  \n;   
echo    $numrows  \n;   
echo     
\n;   
}   
echo    \n;   
ora_close($cursor);   
return;   
}   

//  主程序   
if(!($conn=ora_logon(user@SID,password)))     
{   
echo  Error:  Cannot  connect  to  database\n;   
exit;   
}   
$qry=SELECT   
deptno  \Dept\   
,empno  \Emp\   
,empnm  \Name\   
,salary  \Salary\   
FROM   
employee   
ORDER  BY  1,2;   
exequery($qry);   
ora_logoff($conn);   
?>   
(译者注:以上代码段缺少注释,请读者参考PHP  Manual的Oracle数据库函数部分)   

4.4  基于HTTP的Oracle登录   

将以下代码加在PHP页面代码之前以确认Oracle登录。注意你必须正确设定$  SID。   
if(!isset($PHP_AUTH_USER))     
{   
Header(WWW-authenticate:  basic  realm=\$SID\);   
Header(HTTP/1.0  401  Unauthorized);   
$title=Login  Instructions;   
echo  


You  are  not  authorized  to  enter  the  site   

\n;   
exit;   
}     
else     
{   
if  (!($conn=ora_logon($PHP_AUTH_USER@$SID,$PHP_AUTH_PW)))     
{   
Header(WWW-authenticate:  basic  realm=\$SID\);   
Header(HTTP/1.0  401  Unauthorized);   
$title=Login  Instructions;   
echo  

You  are  not  authorised  to  enter  the  site   

\n;   
exit;   
}   
}   
?>   


上一篇:如何利用php+mysql保存和输出文件 下一篇:多数据表共用一个页的新闻发布(PHP)

版权说明:作品来源于网上,版权归作者所有,如果无意中侵犯了您的版权,请来信告知,本站将在3个工作日内删除。yesize@hotmail.com
  热门小游戏分类 
射击小游戏 连连看小游戏
台球小游戏 成人小游戏
CS小游戏 化妆小游戏
赛车小游戏 休闲小游戏
篮球小游戏 换装小游戏
儿童小游戏 牛牛小游戏
麻将小游戏 冒险小游戏
美媚小游戏 益智小游戏
体育小游戏  
Society Recreation & Sports
Travel & Leisure Communications
Vehicles Computers
Fashion Arts & Entertainment
Reference & Education Disease & Illness
Writing & Speaking Politics
Product Reviews Food & Beverage
Finance Internet Business
Self Improvement Home & Family
Health & Fitness Business
最新更新内容
警惕“公务员报考热”背
公务员考试不是丈母娘考
一名新公务员的自白:我
公务员考脑筋急转弯与挂
北努斗:2006行政能力测
大讨论:06行测BT题目大
过来人回忆:当年,我也
一家之言:公务员热折射
公务员考试申论要是有正
数十万大学生走进公务员
      粤ICP备05005424         Copyright ©2000 - 2004 Yesize.COM