PHP 프레임워크를 구현하는 방법 시리즈 기사 mysql 데이터베이스

WBOY
풀어 주다: 2016-07-29 09:00:44
원래의
1149명이 탐색했습니다.

mysql 데이터베이스 패키지 구현 시 고려할 사항

  1. 사용 용이성

직접 SQL 문 연산을 채택합니다. SQL 문을 작성할 수만 있다면 다른 학습 비용은 발생하지 않습니다.

uctphp 프레임워크에서 제공하는 dba 보조 캡슐화 클래스는 사용한 후에는 내려놓기가 어려울 것입니다.

사용하기 전에 명시적으로 데이터베이스를 초기화하고 연결해야 합니까?

첫 번째 SQL 문이 실행될 때까지 데이터베이스에 연결되지 않으며 새 db 개체도 생성되지 않습니다.

dba는 적절한 시간에 데이터베이스에 연결하고 초기 문자 인코딩 작업을 수행합니다.

쿼리문. 새로운 쿼리 생성자가 필요하지 않으며 너무 복잡하고 비효율적인 연결 연산 방법을 제공하지 않습니다.

dba는 다음과 같은 쿼리 보조 기능을 제공합니다.

1

2

3

4

5

6

7

8

9

10

11

12

//读一个值

Dba::readOne($sql);

//读一行

Dba::readRowAssoc($sql);

//读所有行

Dba::readAllAssoc($sql);

//读所有行的第一列

Dba::readAllOne($sql);

//在实际业务场景中,经常会有分页读取部分数据的情况。

//只要一个函数即可返回指定页码的数据内容和数据总条数

Dba::readCountAndLimit($sql$page$limit);

1

2

3

4

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Dba::write($sql);

/* 直接插入或更新kv形式的array数组

会自动对value进行转义,也支持array类型的值。

如果自己写sql语句要注意使用addslashes或mysql_real_escape_string来保证安全

*/

Dba::insert($table$insert);    

Dba::update($table$update$where);

/*

    对批量插入数据有更高的效率

    当然过多的行数应该用array_chunk来分批插入。

*/

Dba::insertS($table$inserts);

5

6

1

2

3

Dba::beginTransaction();

Dba::commit();

Dba::rollBack();

7

8

9

10

11

12

//값 읽기Dba: :readOne($sql);//한 줄 읽기Dba::readRowAssoc($sql);//모든 행 읽기 Dba::readAllAssoc($sql);//모든 항목의 첫 번째 열 읽기 행 Dba::readAllOne($sql); //실제 비즈니스 시나리오에서는 일부 데이터를 페이지 단위로 읽는 경우가 종종 있습니다. //하나의 함수만으로 지정된 페이지 번호의 데이터 내용과 총 데이터 항목 수를 반환할 수 있습니다.Dba: :readCountAndLimit(<code>$sql, $page, $limit ) ;
ps: 위 함수 중 일부는 각 행을 처리하는 맵 함수를 제공할 수 있습니다. 반환된 배열의 문장을 써보세요. 왜 읽기와 쓰기를 구별해야 합니까? 분명히 읽기와 쓰기 분리, 이중 쓰기 및 기타 기능을 제어하도록 확장될 수 있습니다. 오늘날에는 다양한 클라우드 데이터베이스와 데이터베이스 미들웨어가 있으므로 데이터베이스 계층에서 구현하는 것이 더 나은 선택입니다.
12345678910 1112131415 Dba::write($sql);/* kv 형식으로 배열 배열을 직접 삽입하거나 업데이트합니다 code><code>는 자동으로 값을 이스케이프하고 배열 유형 값도 지원합니다. 직접 SQL 문을 작성하는 경우 안전을 보장하기 위해 addlashes 또는 mysql_real_escape_string을 사용하세요.*/ Dba::insert($table, $insert) <code>Dba::update($table, $update , $where);/* 데이터를 일괄 삽입하는 것이 더 효율적입니다. 물론 너무 많은 행을 일괄 삽입하려면 array_chunk를 사용해야 합니다. */Dba::insertS($table, $inserts);
2. pdo를 사용하여 트랜잭션 지원
1 23 Dba::beginTransaction();Dba: : commit();Dba::rollBack();
3. 장기 실행 Swoole 서비스, 백그라운드 작업자 등 장기 실행이 필요한 일부 시나리오에서는 데이터베이스 연결 시간 초과가 발생할 수 있습니다. 데이터베이스 연결 시간이 초과된 것으로 확인되면 DBA가 자동으로 다시 연결을 시도합니다. 위의 내용은 PHP 프레임워크 시리즈의 기사에서 mysql 데이터베이스를 구현하는 방법을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!