//【警告】:未经许可请勿随便修改
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
//
// 【文件名】: c_ora_db.inc
// 【作 用】: Oracle公用函数类
// 【作 者】: 天灰
//
// 【最后修改日期】: 2001/05/11[cxx]
// 【变量定义规则】:‘C_'=字符型,‘I_'=整型,‘N_'=数字型,‘L_'=布尔型,‘A_'=数组型
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// ※db_logon() 开启数据库连接
// ※db_query() 通用select
// ※db_change() 数据库改变的通用函数(insert,delete,update)
// ※db_insert() insert,直接调用db_change()
// ※db_delete() delete,直接调用db_change()
// ※db_update() update,直接调用db_change()
// ※db_commit() 事务递交
// ※db_rollback() 事务回退
// ※db_logoff() 断开数据库连接
//------------------------------------------------------------------------------------------
Class c_ora_db
{
//------------------------------------------------------------------------------------------
// 变量定义
//------------------------------------------------------------------------------------------
var $C_user = ""; //数据库用户名
var $C_passwd = ""; //数据库口令
var $C_db = ""; //数据库名
var $I_linkID = 0; //连线句柄
var $I_stmtID = 0; //查询句柄
var $color =""; //全局颜色
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_logon()
// 作 用:开启数据库连接
// 参 数:无
// 返回值:连线句柄(整型)
// 备 注:无
//------------------------------------------------------------------------------------------
function db_logon()
{
$this->I_linkID = @OCILogon($this->C_user,$this->C_passwd,$this->C_db);
if ($this->I_linkID == 0){AlertExit('数据库链接失败,请与DBA联系!');}
return $this->I_linkID;
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1)
// 作 用:select
// 参 数:$C_sql sql语句
// $A_define 需绑定的字段。数组型
// $I_start 开始取记录 -1则取出查询的所有记录
// $I_end 结束取纪录
// 返回值:二维数组($A_rs)
// 备 注:通过数字0,1,2....可访问对应字段的值; 或通过查询字段名也可访问对应字段的值
// 如通过$A_rs[0][0]或$A_rs[0]['NAME']或$A_rs[0]['name']都可访问首条记录NAME字段
// $I_start,$I_end是配合分页使用的参数。
//------------------------------------------------------------------------------------------
function db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1)
{
if (!$C_sql){AlertExit("参数不全!");}//检查参数
//连接检测
if ($this->I_linkID == 0){AlertExit('数据库链接失败,请与DBA联系!');}
//格式检测
$this -> I_stmtID = OCIParse($this -> I_linkID,$C_sql);
if (!$this -> I_stmtID){AlertExit(' sql格式出错!请与程序员联系');}
//如果没指定绑定的字段,则从SQL语句中去取
if($A_define=="")
{
$A_Cur = explode("select",$C_sql);
$A_Cur = explode("from",$A_Cur[1]);
$A_define = explode(",",$A_Cur[0]);
}
//绑定数据库表字段
if(gettype($A_define) == "array") //查询列是数组
{
for($i=0;$i
$A_define_up[$i] = trim(strtoupper($A_define[$i])); //大写并去除空格
}
for($i=0;$i
OCIDefineByName($this -> I_stmtID,"$A_define_up[$i]",&$$A_define[$i]); //绑定
}
}
elseif(trim($A_define) "") //查询列只有一个
{
$A_define_up = trim(strtoupper($A_define));
OCIDefineByName($this -> I_stmtID,"$A_define_up",&$$A_define);
}
//执行绑定好的SQL语句
if(!OCIExecute($this -> I_stmtID))
{
echo "执行出错:SQL Error:$C_sql
";
return false;
}
$lower = 0; //返回二维数组的第一维下标控制变量
$cnt = 0; //开始取数标识
//取记录
while (OCIFetchInto($this -> I_stmtID,&$cur,OCI_ASSOC))
{
//取查询出来的所有记录
if ($I_start == -1)
{
if (gettype($A_define) == "array") //查询列是数组
{
for ($i=0;$i
if ($cur[$A_define_up[$i]] $$A_define[$i])
{
$$A_define[$i] = $cur[$A_define_up[$i]];
}
$A_rs[$lower][$i] = $$A_define[$i]; //用数字访问
$A_rs[$lower][$A_define[$i]] = $$A_define[$i]; //用小些访问
$A_rs[$lower][$A_define_up[$i]] = $$A_define[$i]; //用大写访问
}
}
elseif (trim($A_define) "") //查询列只有一个
{
if ($cur[$A_define_up] $$A_define)
{
$$A_define = $cur[$A_define_up];
}
$A_rs[$lower][0] = $$A_define; //用数字访问
$A_rs[$lower][$A_define] = $$A_define; //用小写访问
$A_rs[$lower][$A_define_up] = $$A_define; //用大些访问
}
$lower++; //下标加一
}
//取出指定记录(配合分页使用)
if ($I_start -1)
{
if ($cnt >= $I_start)
{
$cnt++;
if ($I_end - $I_start 0)
{
$I_end--;
if (gettype($A_define) == "array")
{
for($i=0;$i
if ($cur[$A_define_up[$i]] $$A_define[$i])
{
$$A_define[$i] = $cur[$A_define_up[$i]];
}
$A_rs[$lower][$i] = $$A_define[$i]; //用数字访问
$A_rs[$lower][$A_define[$i]] = $$A_define[$i]; //用小些访问
$A_rs[$lower][$A_define_up[$i]] = $$A_define[$i]; //用大写访问
}
}elseif(trim($A_define) "")
{
if ($cur[$A_define_up] $$A_define)
{
$$A_define = $cur[$A_define_up];
}
$A_rs[$lower][0] = $$A_define; //用数字访问
$A_rs[$lower][$A_define] = $$A_define; //用小些访问
$A_rs[$lower][$A_define_up] = $$A_define; //用大写访问
}
$lower++;
}else
{
break; //如果$I_end-$I_start=0 表示取完记录并跳出while循环
}
}else
{
$cnt++; //如果$cnt }
}
} //while的结束
//释放句柄并返回查询数据(一个二维数组)
OCIFreestatement($this -> I_stmtID);
return $A_rs;
} //function的结束
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_change($C_sql,$A_bind)
// 作 用:db change
// 参 数:$C_sql sql语句
// $A_bind 需绑定的字段。数组型
// 返回值:布尔值
// 备 注:insert,delete,update通用
//------------------------------------------------------------------------------------------
function db_change($C_sql,$A_bind="")
{
if (!$C_sql){AlertExit("参数不全!");}//检查参数
//连接检测
if($this -> I_linkID==""){ AlertExit("我们的数据库正忙,请稍后再连接!");}
//格式检测
$this -> I_stmtID = OCIParse($this -> I_linkID,$C_sql);
if (!$this -> I_stmtID){AlertExit(' sql格式出错!请与程序员联系');}
//绑定
if(gettype($A_bind) == "array")
{
for($i=0;$i
global $$A_bind[$i];
$$A_bind[$i] = StripSlashes($$A_bind[$i]); //去掉反斜线字元
$$A_bind[$i] = str_replace(""," }
for($i=0;$i
}
}
elseif(trim($A_bind) "") //不是数组,是字符
{
global $$A_bind;
$$A_bind = StripSlashes($$A_bind);
$$A_bind = str_replace(""," OCIBindByName($this -> I_stmtID, ":$arrBind", &$$A_bind, -1);
}
//执行并检测是否成功
if(!OCIExecute($this -> I_stmtID,OCI_DEFAULT))
{
echo "执行出错:SQL Error:$C_sql
";
return false;
}
/*//传回受影响的行数
global $I_changenum;
$I_changenum = OCINumrows($this -> I_stmtID);*/
//释放句柄,传回值
OCIFreeStatement($this -> I_stmtID);
return true;
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_delete($C_sql)
// 作 用:delete
// 参 数:C_sql sql语句
// 返回值:布尔值
// 备 注:该函数只是为了使用直观,本质调用db_change()
//------------------------------------------------------------------------------------------
function db_delete($C_sql)
{
return $this -> db_change($C_sql);
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_insert($C_sql,A_bind)
// 作 用:insert
// 参 数:C_sql sql语句
// A_bind 绑定
// 返回值:布尔值
// 备 注:该函数只是为了使用直观,本质调用db_change()
//------------------------------------------------------------------------------------------
function db_insert($C_sql,$A_bind="")
{
return $this -> db_change($C_sql,$A_bind);
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_update($C_sql,A_bind)
// 作 用:update
// 参 数:C_sql sql语句
// A_bind 绑定
// 返回值:布尔值
// 备 注:该函数只是为了使用直观,本质调用db_change()
//------------------------------------------------------------------------------------------
function db_update($C_sql,$A_bind="")
{
return $this -> db_change($C_sql,$A_bind);
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_commit()
// 作 用:事务递交
// 参 数:无
// 返回值:布尔值
// 备 注:无
//------------------------------------------------------------------------------------------
function db_commit()
{
return (OCICommit($this->I_linkID));
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_rollback()
// 作 用:事务回退
// 参 数:无
// 返回值:布尔值
// 备 注:无
//------------------------------------------------------------------------------------------
function db_rollback()
{
return (OCIRollback($this->I_linkID));
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
// 函数名:db_logoff()
// 作 用:断开数据库连接
// 参 数:无
// 返回值:布尔值
// 备 注:无
//------------------------------------------------------------------------------------------
function db_logoff()
{
return (OCILogoff($this->I_linkID));
}
//------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------
}
?>

PHP는 동적 웹 사이트를 구축하는 데 사용되며 해당 핵심 기능에는 다음이 포함됩니다. 1. 데이터베이스와 연결하여 동적 컨텐츠를 생성하고 웹 페이지를 실시간으로 생성합니다. 2. 사용자 상호 작용 및 양식 제출을 처리하고 입력을 확인하고 작업에 응답합니다. 3. 개인화 된 경험을 제공하기 위해 세션 및 사용자 인증을 관리합니다. 4. 성능을 최적화하고 모범 사례를 따라 웹 사이트 효율성 및 보안을 개선하십시오.

PHP는 MySQLI 및 PDO 확장 기능을 사용하여 데이터베이스 작업 및 서버 측 로직 프로세싱에서 상호 작용하고 세션 관리와 같은 기능을 통해 서버 측로 로직을 처리합니다. 1) MySQLI 또는 PDO를 사용하여 데이터베이스에 연결하고 SQL 쿼리를 실행하십시오. 2) 세션 관리 및 기타 기능을 통해 HTTP 요청 및 사용자 상태를 처리합니다. 3) 트랜잭션을 사용하여 데이터베이스 작업의 원자력을 보장하십시오. 4) SQL 주입 방지, 디버깅을 위해 예외 처리 및 폐쇄 연결을 사용하십시오. 5) 인덱싱 및 캐시를 통해 성능을 최적화하고, 읽을 수있는 코드를 작성하고, 오류 처리를 수행하십시오.

PHP에서 전처리 문과 PDO를 사용하면 SQL 주입 공격을 효과적으로 방지 할 수 있습니다. 1) PDO를 사용하여 데이터베이스에 연결하고 오류 모드를 설정하십시오. 2) 준비 방법을 통해 전처리 명세서를 작성하고 자리 표시자를 사용하여 데이터를 전달하고 방법을 실행하십시오. 3) 쿼리 결과를 처리하고 코드의 보안 및 성능을 보장합니다.

PHP와 Python은 고유 한 장점과 단점이 있으며 선택은 프로젝트 요구와 개인 선호도에 달려 있습니다. 1.PHP는 대규모 웹 애플리케이션의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 데이터 과학 및 기계 학습 분야를 지배합니다.

PHP는 전자 상거래, 컨텐츠 관리 시스템 및 API 개발에 널리 사용됩니다. 1) 전자 상거래 : 쇼핑 카트 기능 및 지불 처리에 사용됩니다. 2) 컨텐츠 관리 시스템 : 동적 컨텐츠 생성 및 사용자 관리에 사용됩니다. 3) API 개발 : 편안한 API 개발 및 API 보안에 사용됩니다. 성능 최적화 및 모범 사례를 통해 PHP 애플리케이션의 효율성과 유지 보수 성이 향상됩니다.

PHP를 사용하면 대화식 웹 컨텐츠를 쉽게 만들 수 있습니다. 1) HTML을 포함하여 컨텐츠를 동적으로 생성하고 사용자 입력 또는 데이터베이스 데이터를 기반으로 실시간으로 표시합니다. 2) 프로세스 양식 제출 및 동적 출력을 생성하여 htmlspecialchars를 사용하여 XSS를 방지합니다. 3) MySQL을 사용하여 사용자 등록 시스템을 작성하고 Password_Hash 및 전처리 명세서를 사용하여 보안을 향상시킵니다. 이러한 기술을 마스터하면 웹 개발의 효율성이 향상됩니다.

PHP와 Python은 각각 고유 한 장점이 있으며 프로젝트 요구 사항에 따라 선택합니다. 1.PHP는 웹 개발, 특히 웹 사이트의 빠른 개발 및 유지 보수에 적합합니다. 2. Python은 간결한 구문을 가진 데이터 과학, 기계 학습 및 인공 지능에 적합하며 초보자에게 적합합니다.

PHP는 여전히 역동적이며 현대 프로그래밍 분야에서 여전히 중요한 위치를 차지하고 있습니다. 1) PHP의 단순성과 강력한 커뮤니티 지원으로 인해 웹 개발에 널리 사용됩니다. 2) 유연성과 안정성은 웹 양식, 데이터베이스 작업 및 파일 처리를 처리하는 데 탁월합니다. 3) PHP는 지속적으로 발전하고 최적화하며 초보자 및 숙련 된 개발자에게 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
