PHP网站制作之oracle database access object
咱们就开始学习动态语言的概念吧,刚一接触动态语言,可能很多人都会蒙了,怎么这乱七八糟的东西,在网页里显示的时候却是另外一码事?其实这并不算乱七八糟,你写的HTML代码不也一样是一堆堆的字符吗?毕竟,代码并不是作为直接输出的,而是经过处理的,说白了,HTML是经过HTML解析器,而PHP当然也就通过PHP解析器了,跟学习HTML一样的道理,想让任何的解析器完成操作,就必须使用它们专用的语法结构,所以PHP长相奇怪也就不足为奇了。access|object|oracleCalling example:
<?
$conn = OCILogon("www_cec", "webchn99", "unicorn");
#or you can just inclued file like "include("modcec_OCI_conn.php3");"
$newOda= new ODA($conn);
#################
#or you can use login method like this
#$newOda-=new ODA();
#$newOda->Logon("www","99","corn");
###############################################
$newOda->CmdString=" update test set nouse='dfs' where login_name='guoyafeng'";
if(!$newOda->Execute()) {
echo $newOda->err;
}
else
{
echo $newOda->Rows;#get the affected row number.
}
#or you can call execute like this####
/*
$newOda->Execute(" update test set nouse='dfs' where login_name='guoyafeng'");
*/
#############################
#the following demostrate the open method.
$newOda->Open("select * from test")) or die $newOda->err;
#Get data from RS
echo "count is" .$newOda->Rows;
for($i=0;$i<$newOda->Rows;$i++)
for($j=0;$j<$newOda->Cols;$j++)
{
echo $newOda->RS[$i][$j];
}
$newOda->Logoff();
?>
<?
/********************************************************************************#
#File Name:ODA.php3 #
#Author:Guo Yafeng #
#Function: Oracle DB Access. #
#Maint History: #
# Sept 18,2000 first release. #
# #
# #
#********************************************************************************/
/********************************************************************************#
#Object interface description: #
#Properties: #
# conn Connection Object #
# err_no Error No #
# err Error Description #
# CmdString SQL Statements to execute. #
# Rows Affected Rows. #
# RS Return value array.
# Cols #
# #
#Method: #
# Open Execute the CmdString and return value #
# Execute Execute the CmdString. #
#********************************************************************************/
file://$conn = OCILogon("www_ce", "ceonline99", "wsgp");
// $conn = OCILogon("www_cec", "webchn99", "unicorn");
//if ($SERVER_NAME == "")
// $SERVER_NAME = $HTTP_HOST;
class ODA
{
function ODA($cn="") {
if($cn!="")
$this->conn=$cn;
return TRUE;
}
function Logon($user,$pass,$db) {
if(!($this->conn = OCILogon($user, $pass, $db))){
$this->err_no=106;
$this->err="Error 106: Failed to logon.";
return FALSE;
};
return TRUE;
}
function Open($sql="") file://$this->CmdString
{
if($this->conn=="") {
$this->err_no=100;
$this->err="Error 100,Connection Object Required.";
return FALSE;
}
if($sql=="" and $this->CmdString=="") {
$this->err_no=101;
$this->err="Error 101,SQL Statement Required.";
return FALSE;
}
if($sql=="")
$sql=$this->CmdString;
if(!($cursor=OCIParse($this->conn,$sql))) {
$this->err_no=102;
$this->err="Server Internal Error: Failed to parse SQL Statement.";
return FALSE;
}
if(!OCIExecute($cursor)){
$this->err_no=103;
$this->err="Server Internal Error: Failed to execute SQL Statement.";
return FALSE;
}
$this->Rows=0;
while(OCIFetchInto($cursor,$this->RS[$this->Rows])){
$this->Rows++;
}
$this->Cols=OCINumCols($cursor);
if($this->Rows==0) {
$this->err_no=104;
$this->err="Warning: No rows affectted.RS result is not available.";
}
OCIFreeStatement($cursor);
return TRUE;
}
function Execute($sql="") {
if($this->conn=="") {
$this->err_no=100;
$this->err="Error 100,Connection Object Required.";
return FALSE;
}
if($sql=="" and $this->CmdString=="") {
$this->err_no=101;
$this->err="Error 101,SQL Statement Required.";
return FALSE;
}
if($sql=="")
$sql=$this->CmdString;
if(!($cursor=OCIParse($this->conn,$sql))) {
$this->err_no=102;
$this->err="Server Internal Error: Failed to parse SQL Statement.";
return FALSE;
}
if(!OCIExecute($cursor)){
$this->err_no=103;
$this->err="Server Internal Error: Failed to execute SQL Statement.";
return FALSE;
}
$this->Rows=OCIRowCount($cursor);
OCIFreeStatement($cursor);
return TRUE;
}
function LogOff(){
if(!OCILogoff($conn)){
$this->err_no=105;
$this->err="Server Internal Error: Failed to logoff database.";
return FALSE;
}
return TRUE;
}
}
?>在学习中,我也一直这样要求着自己。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。 有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。 个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。 php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。 php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会) 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 本文当是我的笔记啦,遇到的问题随时填充 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。 建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
页:
[1]