실행 함수
마지막으로 실행() 함수를 구성해야 합니다. 실행() 함수는 쿼리를 컴파일하고 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('SELECT fname,sname FROM users WHERE username=:1S AND pword=:2S AND expire_time<:3I'); if ($result = $query->execute("visualad", "apron", time())) { if ($db->num_rows($result) == 1) { echo('凭证正确。'); } else { echo('凭证不正确,会话已过期。'); } } else { echo('执行query时发生错误:' . $db->error()); }
이 문서에서는 방법을 확인했습니다. 클래스 변수를 선언할 때 데이터를 보호하고 데이터 객체의 가시성을 제한하기 위해 액세스 한정자를 사용합니다. 동시에 PHP 5에서는 이러한 개념을 다른 데이터 클래스에서도 사용할 수 있습니다. 내부 데이터.
위 내용은 PHP의 OOP 기능을 활용하여 데이터 보호를 구현한 내용입니다(3). 더 많은 관련 내용은 PHP 중국어 홈페이지(m.sbmmt.com)를 참고해주세요!