mysql 데이터베이스 패키지 구현 시 고려해야 할 사항
1. 사용 편의성
직접 SQL 문 연산을 채택합니다. SQL 문을 작성할 수만 있다면 다른 학습 비용은 발생하지 않습니다.
uctphp 프레임워크에서 제공하는 dba 보조 캡슐화 클래스는 사용하고 나면 내려놓기가 어려울 것입니다.
사용하기 전에 명시적으로 데이터베이스를 초기화하고 연결해야 합니까?
첫 번째 sql 문이 실행될 때까지 데이터베이스에 연결되지 않으며 새 db 개체도 생성되지 않습니다.
dba는 적절한 시간에 데이터베이스에 연결하고 초기 문자 인코딩 작업을 수행합니다.
쿼리문입니다. 새로운 쿼리 생성자가 필요하지 않으며 너무 복잡하고 비효율적인 연결 연산 방법을 제공하지 않습니다.
dba는 다음과 같은 쿼리 보조 기능을 제공합니다.
//读一个值 Dba::readOne($sql); //读一行 Dba::readRowAssoc($sql); //读所有行 Dba::readAllAssoc($sql); //读所有行的第一列 Dba::readAllOne($sql); //在实际业务场景中,经常会有分页读取部分数据的情况。 //只要一个函数即可返回指定页码的数据内容和数据总条数 Dba::readCountAndLimit($sql, $page, $limit);
ps: 위 함수 중 일부는 반환된 배열의 각 행을 처리하는 맵 함수를 제공할 수 있습니다.
문장을 써보세요. 왜 읽기와 쓰기를 구별해야 합니까? 분명히 읽기와 쓰기 분리, 이중 쓰기 및 기타 기능을 제어하도록 확장될 수 있습니다.
현재는 다양한 클라우드 데이터베이스와 데이터베이스 미들웨어가 있으므로 데이터베이스 계층에서 구현하는 것이 더 나은 선택입니다.
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);
2. 트랜잭션
pdo를 사용하여 트랜잭션 지원
Dba::beginTransaction(); Dba::commit(); Dba::rollBack();
3. 장기 실행
Swoole 서비스, 백그라운드 작업자 등 장기 실행이 필요한 일부 시나리오에서는 데이터베이스 연결 시간 초과가 발생할 수 있는 상황입니다.
데이터베이스 연결 시간이 초과된 것으로 확인되면 DBA가 자동으로 다시 연결을 시도합니다.
위 내용은 편집자가 소개한 PHP 프레임워크 시리즈(6) mysql 데이터베이스 방식입니다. 많은 분들께 도움이 되었으면 좋겠습니다!
위 내용은 관련 내용을 포함하여 PHP 프레임워크 시리즈를 구현하는 6mysql 데이터베이스 방법을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.