通过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数据库连接的更多相关文章

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  3. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  4. PHP实现文件安全下载

    例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用"Redirect"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。feof){echofread;}fclose;}这样就可以用PHP直接输出文件了。

  5. 如何在PHP环境中使用ProtoBuf数据格式

    这篇文章主要介绍了如何在PHP环境中使用ProtoBuf数据格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  6. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  7. Android本地存储方法浅析介绍

    这篇文章主要介绍了Android本地存储案例,方法简单可以实现存储并达到节省内存的效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  8. 详解Python如何实现Excel数据读取和写入

    这篇文章主要为大家详细介绍了python如何实现对EXCEL数据进行读取和写入,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  9. PHP默认安装产生系统漏洞

    当你下载PHP後,在它内含的安装文件中帮助了PHP在NTApacheWebServer的安装方式,其中的安装帮助会要你将底下这几行设置加到apache的httpd.conf设置文件中,而这个安装文件将导引你将你的系统门户大开。

  10. Python自动化办公之Excel数据的写入

    这篇文章主要为大家详细介绍一下Python中excel的写入模块- xlsxwriter,并利用该模块实现Excel数据的写入,感兴趣的小伙伴可以了解一下

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部