>백엔드 개발 >PHP 튜토리얼 >시모키타 글로리 데이즈 ADODB와 SMARTY를 결합해~ 초강력

시모키타 글로리 데이즈 ADODB와 SMARTY를 결합해~ 초강력

WBOY
WBOY원래의
2016-07-29 08:35:131045검색

스마트한 실전 교육 예시 (3. ADODB를 활용한 데이터베이스 연결)
지난 두 달 동안 업무상 너무 바빠서 시간 내에 튜토리얼을 완료하지 못했습니다. 오늘은 토요일에 야근을 할 필요가 없으니 시간을 내어 완성해보세요!
먼저 이전에 작성한 튜토리얼의 일부 오류를 수정해 주셔서 감사합니다. 그렇지 않으면 기사에서 "사람을 오해한다"는 이유로 다른 사람들로부터
정말 혼났어요(초안이 나온 후 많은 문제를 발견했다고 말하기가 정말 부끄럽습니다.
해야 합니다...)
이전 튜토리얼에서:
===================== ====== ================================
while($db->next_record( ) && $i > 0)
{
$array[] = array("NewsID", csubstr($db->f("iNewsID"), 0, 20),
"NewsTitle ", csubstr($db ->f("vcNewsTitle"), 0, 20));
$i--;
}
============= ======= ======================================
은 그래야지 다음으로 변경됨:
== ========================================= ======== =====
while($db->next_record() && $i > 0)
{
$array[] = array("NewsID" => $db-> f("iNewsID"),
"NewsTitle" => csubstr($db->f("vcNewsTitle"), 0, 20)); -;
}
=================================== ========= ========
왜 이렇게 바꾸나요? 사실 두 번째 방법이 두 번째 방법과 효과가 더 명확하기 때문이죠. 그리고 그 프로그램들은 이전에 디버깅된 적이 있어서
문제가 없습니다.
자, 오늘은 ADODB에 대해 얘기해 보겠습니다. ASP를 해본 사람들은 WINDOWS 플랫폼의 ADO 구성 요소를 알 수 있습니다. 여기에 있는 ADODB는 Microsoft
의 데이터베이스 작업 구성 요소가 아니라 PHP 언어로 작성된 데이터베이스 작업 클래스 라이브러리 집합이 무엇인지 먼저 살펴보겠습니다.
1. SQL문으로 작성된 데이터베이스 실행 코드는 데이터베이스 이식 시 소스 프로그램을 변경할 필요가 없으므로 ACCESS를 비롯한 다양한 데이터베이스를 지원할 수 있습니다.
2. Microsoft ADODB와 유사한 구문 기능을 제공합니다. ASP에서 PHP로 전환하면 많은 작업이 WINDOWS의 ADODB와 유사합니다.
3. Smarty 루프에 필요한 2차원 배열을 생성할 수 있어 스마트한 개발이 단순화됩니다. 이에 대해서는 나중에 설명하겠습니다.
4. 데이터베이스 쿼리 속도를 최대화하기 위해 데이터베이스의 캐시된 쿼리를 지원합니다.
5. 기타 실용적인 기능
이 클래스 라이브러리가 매우 크기 때문에 장점이 많지만 기본 실행 클래스만 107K이므로 실행 효율성을 고려하면 심각하게 생각해야 합니다. 솔직히 말해서
기능은 여전히 ​​강력하고 실용적인 기능이 많이 있습니다. 이러한 기능을 사용하면 원하는 기능을 쉽게 얻을 수 있으므로 상사가 특별한 요구 사항이 없다면
사용을 막지 마십시오.
1. ADODB는 어떻게 구하나요?
http://sourceforge.net/project/show에서... hp4.0.5 이상.
2. ADODB 설치 방법
다운로드한 압축 파일의 압축을 풀어주세요. 참고: 다운로드한 형식은 Linux의 압축 형식인 ADODB.tar.gz로 압축할 수 있습니다.
압축해제를 실행합니다. 압축해제 완료 후, 예시에서 /comm/adodb/에 복사한 것처럼 해당 디렉터리를 지정합니다.
3. ADODB를 호출하는 방법
include_once("./comm/adodb/adodb.inc.php")를 사용하세요. ADODB의 기본 파일이 포함되어 있습니다.
4. ADODB를 사용하는 방법
1. 초기화:
ADODB는 $conn = ADONewConnection()을 사용하여 초기화합니다.
첫 번째 방법은 다음과 같습니다. 전통적인 방법. 지금은 그렇게 부르겠습니다. 새 연결을 설정하는 데 사용하는 방법은 PHP의 표준 연결 방법과 매우 유사합니다.
$conn = new ADONewConnection($dbDriver)
$conn->Connect($host, $user, $ passwd, $db)
간단하죠? phplib에서 db 클래스를 사용해 본 적이 있다면 익숙할 것입니다.
두 번째 방법: 초기화를 위해 데이터베이스 연결문을 하나의 문으로 작성하는 dsn 방법을 사용합니다. dsn 작성 방법은 다음과 같습니다. $dsn =
"DBType://User:Passwd@Host/ DBName "; 여기서 DBType은 데이터베이스 유형을 나타내고, User는 사용자 이름을 나타내고, Passwd는 비밀번호, Host는 서버 이름, DBName은 데이터베이스 이름
입니다. 이와 같이 저는 oracle 데이터베이스를 사용합니다. 사용자 이름: oracleUser, 비밀번호 oraclePasswd이고 데이터베이스 서버는 localhost이며 데이터베이스는 다음과 같이 작성된 oradb의 dsn입니다.
$dsn = "oracle://oracleUser:OraclePasswd@localhost/oradb"
$conn = new ADONewConnection($dsn);
이 방법은 ASP에서 경력을 전환한 프로그래머가 더 관심을 가질 것입니다.
두 가지 방법을 모두 사용할 수 있으며 개인 습관에 따라 다릅니다.
2. 관련 개념:
ADODB를 사용하는 데는 두 가지 기본 클래스가 있는데 하나는 ADOConnection 클래스이고 다른 하나는 people입니다. ASP를 사용해 본 사람은 이 두 클래스를 보면 그 의미를 이해할 수 있습니다.
ADOConnection은 데이터베이스 연결 클래스를 참조하고 ADORecordSet은 쿼리 문을 실행하는 ADOConnection이 반환하는 데이터 세트 클래스를 참조합니다. ADODB
클래스.
3. 기본 기능:
ADOConnection 클래스의 관련 메소드는 다음과 같습니다.
1.Connect: 위에서 소개한 데이터베이스 연결 메소드입니다. mysql의 경우 PConnect도 있는데, 이는 PHP 언어의 사용법과 동일합니다.
2.Execute($sql): 쿼리문을 실행하고 ADORecordSet 클래스를 반환합니다.
3.GetOne($sql): 첫 번째 행의 첫 번째 필드를 반환합니다.
4.GetAll($sql): 모든 데이터를 반환합니다. 이 기능은 매우 유용합니다. 이전 튜토리얼에서 뉴스 목록 입력에 대해 작성할 때 페이지에 표시해야 하는
뉴스 목록을 2차원 배열로 만들어야 했던 것을 기억하시나요? 다음은 문장입니다.
========================================= == ===========================================
그동안( $db ->next_record())
{
$array[] = array("NewsID" => $db->f("iNewsID"),
"NewsTitle" => csubstr( $db->f("vcNewsTitle"), 0, 20))
}
===================== === ============================================== === ==========
이 줄은 무엇을 의미하나요? 표시할 뉴스 예제 테이블을 생성하는 것입니다
$array[0] = array("NewsID"=>1, "NewsTitle"=>"The first news item here")
$array [1 ] = array("NewsID"=>2, "NewsTitle"=>"여기에 두 번째 뉴스 항목이 있습니다.")
...
이 형식이지만 제어할 필요가 없는 경우 제목, 우리는 ADODB에서 운이 좋았습니다.
=========================================================== == =============================================== =
$strQuery = "tb_news_ch에서 iNews, vcNewsTitle 선택";
$array = &$conn->GetAll($strQuery);//이 문장에 주목하세요
$smarty-> ("News_CH", $array);
unset($array)
========================= === ============================================== ===
물론 여기 $conn도 초기화되어 있어야겠죠? 제가 수동으로 만들고 싶은 2차원 데이터는 여기에서 GetAll을 사용하면 된다는 사실이 밝혀졌습니다! ! ! 이것이 일부 사람들이 ADODB Smarty를 무적의 조합이라고 말하는 이유 중 하나이기도 합니다...
4.SelectLimit($sql, $numrows=-1, $offset=-1, $inputarrr=false) : Returns 이는 제한된 쿼리
문장이라는 것을 문에서 쉽게 알 수 있으며 이는 mysql 문의 제한과 동일한 효과를 갖습니다.
$rs = $ conn ->SelectLimit("select iNewsID, vcNewsTitle from tb_news_CH", 5, 1)
이해하셨나요? $rs에는 데이터베이스의 첫 번째 레코드부터 시작하여 5개의 레코드가 저장됩니다. 우리는 Oracle 데이터베이스가 SQL 문에서 제한 사용을 지원하지 않는다는 것을 알고 있지만 ADODB를 사용하면 이 문제를 훨씬 쉽게 해결할 수 있습니다!
5.Close(): 데이터베이스를 닫습니다. 페이지가 끝나면 PHP가 자동으로 닫히지만 프로그램의 무결성을 위해 페이지가 끝나면 데이터베이스를 닫아야 합니다.
$conn->Execute($sql)에 대해 ADORecordSet.ADORecordSet이 반환한 결과에 대한 기본 기능은 다음과 같습니다.
1. Fields($colname): 필드 값을 반환합니다.
2. RecordCount(): 포함된 레코드 수는 데이터 세트의 총 레코드 수를 결정합니다.
3.GetMenu($name, [$default_str=''], [$blank1stItem=true] , [$multiple_select=false], [$size=0], [$moreAttr=''])는 name=$name인 드롭다운 메뉴(또는 다중 선택 상자)를 반환할 수 있는 매우 좋은 함수입니다! !! 물론 HTML 문자열입니다. 이것은 흥미로운 일입니다. $name은
옵션의 이름 속성을 참조하고, $default_str은 기본 선택 문자열이고, $blank1stItem은 첫 번째 항목이 비어 있는지 여부를 나타내며, $multiple_select는 다중 선택 상자인지 여부를 표시하고 이
문자열을 얻은 후 $smarty->("TemplateVar", "GetMenuStr")를 사용하여 드롭다운 목록(또는 다중 선택)을 입력할 수 있습니다. 먼저 템플릿 프레임의 "TemplateVar")
4. MoveNext(): 코드를 살펴보겠습니다.
=================== ========== ===========================
$rs = &$conn->실행 ($sql);
if( $rs)
{
while($rs->EOF)
{
$array[] = array("NewsID" => $ rs->fields["iNewsID"] ,
"NewsTitle" => csubstr($rs->fields["vcNewsTitle"]),
$rs->MoveNext( );
}
}
================================= ============= =========
이해하셨나요? MS ADODB의 것과 매우 유사합니다.
5. (), Move($to): 동일합니다. 함수 이름을 보면 무슨 뜻인지 알 수 있습니다.
6. FetchRow(): 행을 반환합니다. 코드를 보면
===== =============== =================================== ===
$rs = &$conn-> Exceute($sql);
if($rs)
{
while($row = $rs->FetchRow())
{
$array[] = array(" NewsID" => $row["iNewsID"],
"NewsTitle" => csubstr($row["vcNewsTitle"]), 0, 20)
}
}

위 내용은 시모키타 글로리 데이의 내용을 포함하여 SMARTY와 결합된 시모키타 글로리 데이 ADODB의 사용 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.