仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1337|回复: 18
打印 上一主题 下一主题

[学习教程] PHP网站制作之用PHP毗连Oracle数据库

[复制链接]
不帅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
会有很多高手的鼓励,新手的支持,慢慢你劲头就十足,有更多的信心和兴趣去学。oracle|数据|数据库   经由过程PHP你可以轻松的毗连到数据库,恳求数据并将其显示在你的web站点中,乃至修正数据库中的数据。MySQL是一种很盛行的数据库,而且在互联网中有很多有关PHP与MySQL的教程。MySQL是收费的,这一点或许就吸引了很多人。因为其普遍使用,我就不想在这里赘述MySQL的利用办法了。Oracle被大批在企业使用中采取,因而咱们就使用Oracle来引见PHP与数据库的毗连。咱们固然不会说起Oracle数据库的设计道理,缘由是这已超越了咱们的会商局限。

  PHP供应了两套函数与Oracle毗连,分离是ORA_和OCI函数。个中ORA_函数略显陈腐。OCI函数更新听说更好一些。二者的利用语法几近相差无几。你的PHP装置选项应当可以撑持二者的利用。

  毗连

< ? if ($conn=Ora_Logon("user@TNSNAME","password"))
{ echo "SUCCESS ! Connected to database ";
}else
{echo "Failed :-( Could not connect to database ";}
Ora_Logoff($conn);
phpinfo();
?>

  以上代码利用TNSNAME(在你的tnsnames.ora文件中指明)界说的Oracle数据库称号、用户称号和暗码毗连数据库。在胜利毗连的基本上,ora_logon函数前往一个非零的毗连ID并贮存在变量$conn中。

  查询

  假定与数据库已毗连停当,上面咱们就来实践的使用对数据库的查询。上面的代码演示了一个毗连并查询的典范例子:

function printoraerr($in_cur)
{
// 反省Oracle是不是失足
// 假如存在毛病则显示
// 当指针被激活时每次恳求Oracle后挪用该函数
if(ora_errorcode($in_cur))
echo "Oracle code - ".ora_error($in_cur)." ";
return;
}
if (!($conn=ora_logon("user@TNSNAME","password")))
{echo "Connection to database failed ";
exit;
}
echo "Connected as connection - $conn ";
echo "Opening cursor ... ";
$cursor=ora_open($conn); printoraerr($cursor);
echo "Opened cursor - $cursor ";
$qry="select user,sysdate from dual";
echo "Parsing the query $qry ... ";
ora_parse($cursor,$qry,0); printoraerr($cursor);
echo "Query parsed ";
echo "Executing cursor ... ";
ora_exec($cursor); printoraerr($cursor);
echo "Executed cursor ";
echo "Fetching cursor ... ";
while(ora_fetch($cursor))
{
$user=ora_getcolumn($cursor,0); printoraerr($cursor);
$sysdate=ora_getcolumn($cursor,1); printoraerr($cursor);
echo " row = $user, $sysdate ";
}
echo "Fetched all records ";
echo "Closing cursor ... ";
ora_close($cursor);
echo "Closed cursor ";
echo "Logging off from oracle... ";
ora_logoff($conn);
echo "Logged off from oracle ";
?>

  显示了局

  以下代码演示了如何查询数据库并将了局输入:

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 " ";
for ($i=0;$i<$w_numcols;$i++)
{
$align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT";
echo " ".ora_columnname($cursor,$i)." ";
}
echo " ";
while(ora_fetch($cursor))
{
echo " ";
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)." ";
else
echo " ".ora_getcolumn($cursor,$i)." ";
printoraerr($cursor,$conn);
}
$numrows++;
echo " ";
}
if ($numrows==0)
echo " Query returned no records ";
else
{
echo " ";
echo " Count ";
echo " $numrows ";
echo " ";
}
echo " ";
ora_close($cursor);
return;
}
// 主法式
if(!($conn=ora_logon("user@SID","password")))
{
echo "Error: Cannot connect to database ";
exit;
}
$qry="SELECT
deptno "Dept"
,empno "Emp"
,empnm "Name"
,salary "Salary"
FROM
employee
ORDER BY 1,2";
exequery($qry);
ora_logoff($conn);
?>


  基于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
";
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
";
exit;
}}
?>
  然后大吼:别人可以,我为什么就不可以?(是不是有点阎罗教练的味道,默默的确是电影看多了,抽嘴巴是会痛的,各位其实明白这个道理了就行了)
飘灵儿 该用户已被删除
沙发
发表于 2015-2-4 10:56:15 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
再见西城 该用户已被删除
板凳
发表于 2015-2-5 22:58:47 | 只看该作者
当然这种网站的会员费就几十块钱。
活着的死人 该用户已被删除
地板
发表于 2015-2-9 03:50:11 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
再现理想 该用户已被删除
5#
发表于 2015-2-26 20:48:45 | 只看该作者
说点我烦的低级错误吧,曾经有次插入mysql的时间 弄了300年结果老报错,其实mysql的时间是有限制的,大概是到203X年  具体的记不清啦,囧。
若相依 该用户已被删除
6#
发表于 2015-3-8 17:32:55 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
飘飘悠悠 该用户已被删除
7#
发表于 2015-3-16 07:54:28 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
精灵巫婆 该用户已被删除
8#
发表于 2015-3-18 20:05:35 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
因胸联盟 该用户已被删除
9#
发表于 2015-3-29 20:58:43 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
海妖 该用户已被删除
10#
发表于 2015-4-3 15:32:09 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
灵魂腐蚀 该用户已被删除
11#
发表于 2015-4-24 15:09:22 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
小女巫 该用户已被删除
12#
发表于 2015-4-26 19:09:31 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
金色的骷髅 该用户已被删除
13#
发表于 2015-4-26 20:57:19 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
山那边是海 该用户已被删除
14#
发表于 2015-5-6 20:11:58 | 只看该作者
作为一个合格的coder 编码的规范是必须,命名方面我推崇“驼峰法”,另外就是自己写的代码最好要带注释,不然时间长了,就算是自己的代码估计看起来都费事,更不用说别人拉。
冷月葬花魂 该用户已被删除
15#
发表于 2015-6-6 11:43:55 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
只想知道 该用户已被删除
16#
发表于 2015-6-20 00:19:57 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
柔情似水 该用户已被删除
17#
发表于 2015-7-3 00:08:36 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
不帅 该用户已被删除
18#
 楼主| 发表于 2015-7-13 06:25:57 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
19#
发表于 2015-7-18 10:56:54 | 只看该作者
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-22 15:12

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表