> php教程 > PHP开发 > PHP의 OOP 기능을 활용하여 데이터 보호 달성 (3)

PHP의 OOP 기능을 활용하여 데이터 보호 달성 (3)

黄舟
풀어 주다: 2016-12-21 11:00:51
원래의
1214명이 탐색했습니다.

실행 함수

마지막으로 실행() 함수를 구성해야 합니다. 실행() 함수는 쿼리를 컴파일하고 DBQuery 개체를 초기화하는 데 사용되는 DB 개체를 사용하여 실행합니다. 예제 4에서 call_user_func_array() 함수를 사용하여 컴파일된 쿼리를 얻는 방법을 참고하세요. 그 이유는 Execution() 함수가 런타임까지 전달된 인수 수를 결정할 수 없기 때문입니다.

예시 4: 실행() 함수

/**
*
* 执行当前query,并把占位符替换为所提供的参数。
*
* @param mixed $queryParams,... Query parameter
* @return resource A reference to the resource representing the executed query.
*/
public function execute($queryParams = '')
{
 //例如:SELECT * FROM table WHERE name=:1S AND type=:2I AND level=:3N
 $args = func_get_args();

 if ($this->stored_procedure) {
  /* 调用函数compile以取得query */
  $query = call_user_func_array(array($this, 'compile'), $args);
 } else {
  /* 如果存储过程未被初始化,就把它作为标准query执行。*/
  $query = $queryParams;
 }

 $this->result = $this->db->query($query);

 return $this->result;
}
로그인 후 복사

모두 통합됨

쿼리 개체를 사용하는 방법을 보여주기 위해 아래에 작은 예가 구성되어 있습니다. DBQuery 객체 저장 프로시저로 사용하고 올바른 사용자 이름과 비밀번호가 입력되었는지 확인하세요. 예 5:

예 5:

require 'mysql_db.php5';
require_once 'query2.php5';


$db = new MySqlDb;
$db->connect('host', 'username', 'pass');
$db->query('use content_management_system');

$query = new DBQuery($db);

$query->prepare(&#39;SELECT fname,sname FROM users WHERE username=:1S AND pword=:2S AND expire_time<:3I&#39;);

if ($result = $query->execute("visualad", "apron", time())) {
 if ($db->num_rows($result) == 1) {
  echo(&#39;凭证正确。&#39;);
 } else {
  echo(&#39;凭证不正确,会话已过期。&#39;);
 }
} else {
 echo(&#39;执行query时发生错误:&#39; . $db->error());
}
로그인 후 복사

이 문서에서는 방법을 확인했습니다. 클래스 변수를 선언할 때 데이터를 보호하고 데이터 객체의 가시성을 제한하기 위해 액세스 한정자를 사용합니다. 동시에 PHP 5에서는 이러한 개념을 다른 데이터 클래스에서도 사용할 수 있습니다. 내부 데이터.

위 내용은 PHP의 OOP 기능을 활용하여 데이터 보호를 구현한 내용입니다(3). 더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿