집 >데이터 베이스 >MySQL 튜토리얼 >자신만의 데이터베이스 패키지를 작성하는 방법 (1)
아직 신인이니 틀린 부분은 가볍게 댓글로 지적해주세요
얕은 작업 경험으로 인해 데이터베이스 연결을 완전히 다룰 수 없습니다. 더 복잡한 쿼리에는 예상치 못한 버그가 발생할 수 있습니다
그래서 이 시리즈는 성숙하고 안정적인 아이디어만 제공합니다. 데이터베이스 패키지를 직접 검색하세요
이 시리즈를 작성하는 원래 의도는 다른 사람들에게 영감을 주는 것입니다. 각 섹션의 뒷부분에서 개인적인 질문을 드리겠습니다. 질문이 있든 없든, 일부 마스터가 내 질문에 답할 수 있기를 바랍니다
사용된 PHP 버전은 7.0+입니다. 이 시리즈는 아직 버전과 호환되지 않습니다. 5.6 꼭 놀러오세요
데이터베이스 패키지는 laravel의 소스코드를 참조하고 있습니다. 유사점이 있으면 우연이 아닙니다
테이블 이름이 'Actor'라고 가정합니다. 간단한 설정 후 다음과 같이
$a = Actor::select('first_name', 'last_name') ->where('first_name', 'NICK') ->where('last_name', 'WAHLBERG') ->first() var_dump($a);
를 직접 호출할 수 있습니다. (up
날짜/삭제)object(Actor)[11]
public 'first_name' => string 'NICK' (length=4)
public 'last_name' => string 'WAHLBERG' (length=8)
일반적인 데이터베이스 연결 작성 방법
또는 대체된 mysqli와 비교하여 pdo는 SQL 주입 공격을 피할 수 있고 안전하며 객체 지향이므로 다음과 같이 사용됩니다. pdo 예$a->update(...);
$a->delete();
위의 예는 매우 간결합니다. 프로젝트가 점차 커지고 복잡해지면 일부 보조
우리가 보통 직접 작성하지만 캡슐화 클래스가 조금 더 발전한 것뿐입니다. 기본 아이디어
디버깅
기능을 사용하는 것을 좋아하지 않습니다. editor(음성 해설: sublime text 3을 사용합니다) 그래서 디버깅할 때 처음에 이렇게 작성합니다. <?php
$driver='mysql'; //数据库类型
$host='localhost'; //数据库主机名
$db = 'sakila'; //数据库名称
$username='root'; //数据库连接用户名
$password=''; //数据库密码
$dsn="$driver:host=$host;dbname=$db";
try {
$pdo= new PDO($dsn, $username, $password); //初始化一个PDO对象
$sql = "select * from actor";
$res = $pdo->query($sql); // 从actor中获取所有数据
foreach($res as $row) echo $row['first_name']."<br>";
} catch (PDOException $e) {
die($e->getMessage());
}
die(var_dump())가 약간 더 높습니다. 사용률이 높아서 보조기능으로 작성했습니다.
$a = "is bug"; die(var_dump($a)); // 输出变量并且停止运行之后的代码 /***从xdebug得知bug出现在这一行,所以查看上一行的逻辑与数据 ***/
같은 이유로 데이터베이스에서 읽을 때 select의 출현율이 엄청나게 높으니 간단히 정리하세요.
function dd($var) { die(var_dump($var)); }
예
function select($pdo, $table, $require, $where = []) { $w = []; // 将搜索条件转化为数据库命令能接受的格式 foreach ($where as $key => &$val) $w[] = "$key = '$val'"; // 有时候并不需要条件,仅仅将所有数据取出,因此$where默认为空 if(!empty($w)) $w = "where ".implode(', ', $w); else $w = ""; // 生成sql query $sql = "select $require from $table $w"; // 将已生成的query带入pdo实例 $res = $pdo->query($sql); // 返回结果 return $res->fetchAll(); }
요약하자면 데이터베이스 캡슐화는 간단합니다. 설명은 매개변수를 보조 기능으로 가져와 자동으로 SQL 명령을 생성하도록 하는 것입니다.
데이터베이스 캡슐화된
아키텍처.php - 입력 파일, 테이블 설정, 요청 수락 및 반환을 담당합니다. response
대략 이렇습니다. 가능하시다면 좋아요를 눌러주시거나 아래 댓글란에 의견만 남겨주세요. 게으른 암 환자가 앞으로 나아갈 수 있도록 밀어붙일 수 있습니다.
위 내용은 자신만의 데이터베이스 패키지를 작성하는 방법 (1)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!