███████╗ ██╗ ██╗███████╗ ...vvvv)))))).
██╔═══██╗██║ ██║██╔════╝ /~~ ,,,c(((((((((((((((((/
██║██╗██║██║ ██║█████╗ /~~c . .vv)))))))))))))))))))``
███████╔╝██║ ██║██╔══╝ G_G__ ,,(((KKKK//////////////'
╚═██╔═╝ ╚██████╔╝███████╗ ,Z~__ '@,gW@@AKXX~MW,gmmmz==m_.
╚═╝ ╚═════╝ ╚══════╝ iP,dW@!,A@@@@@@@@@@@@@@@A` ,W@@Ac
██████╗ ███████╗███████╗ ]b_.__zf !P~@@@@@*P~b.~+=m@@@*~ g@Ws.
██╔══██╗██╔════╝██╔════╝ ~` ,2W2m. '[ ['~~c'M7 _gW@@A`'s
██████╦╝█████╗ █████╗ v=XX)====Y- [ [ c/*@@@*~ g@@i
██╔══██╗██╔══╝ ██╔══╝ /v~ !.!. 'c7+sg@@@@@s.
██████╦╝███████╗███████╗ // 'c'c 'c7*X7~~~~
╚═════╝ ╚══════╝╚══════╝ ]/ ~=Xm_ '~=(Gm_.
QbB q (QB) 또는 쿼리 빌더 패키지는 MySQL 쿼리를 구축하기위한 가벼운 패키지입니다. SQL 쿼리의 구성을 단순화하는 PHP 패키지입니다. SQL 쿼리 구축에 대한 객체 지향적 접근 방식을 제공하여 PHP 응용 프로그램에서 SQL 문을보다 쉽게 작성, 수정 및 실행할 수 있습니다.
Quebee는 PHP 종속성 관리자 인 Composer를 통해 설치할 수 있습니다. 아직 작곡가를 설치하지 않은 경우 Composer의 웹 사이트를 방문하여 지침을 받으십시오.
다음 명령을 실행하여 퀘비를 설치하십시오.
composer require hindbiswas/quebee Composer의 자동 로더가 프로젝트의 PHP 파일에 포함되어 있는지 확인하십시오. path/to/ : 대신 경로를 사용하십시오.
require_once __DIR__ . DIRECTORY_SEPARATOR . ' path/to ' . ' /vendor/autoload.php ' ;Quebee는 MySQL과 함께 작동하는 다음 기능을 제공합니다.
SELECT , INSERT , UPDATE 및 DELETE 에 대한 Query 클래스.Col 클래스와 함께 CREATE TABLE 의 Table 클래스.Col Class에는 요구 사항에 따라 열을 생성하기 위해 INT , VARCHAR , DATETIME 등과 같은 데이터 유형이 많이 있습니다.UNION , UNION ALL , CUBE , SET 및 GROUPING SETS 문의 Stmt 클래스. 또한 외국 키 제약 조건, 고유 한 기본 키 및 인덱싱 및 그룹화도 포함됩니다. QueBee 사용하는 가능한 모든 방법은 /tests/ directory를 참조하십시오.
다음은 각 쿼리 빌더를 사용하는 방법의 예입니다.
SELECT 쿼리를 만들려면 Query::select() 메소드를 사용하십시오.
use Hindbiswas QueBee Query ;
$ aliased_cols = [ ' alias1 ' => ' column1 ' , ' alias2 ' => ' column2 ' , ' column3 ' => ' column3 ' ];
$ query = Query:: select ( $ aliased_cols )-> from ( ' table ' )-> build ();
// Resulting SQL query
// SELECT column1 AS alias1, column2 AS alias2, column3 AS column3 FROM table;또는,
use Hindbiswas QueBee Query ;
$ query = Query:: select ([ ' column1 ' , ' column2 ' ])
-> from ( ' table ' )
-> where ( ' column1 ' , ' value ' )
-> orderBy ( ' column2 ' , ' desc ' )
-> limit ( 10 )
-> build ();
// Resulting SQL query
// SELECT column1, column2 FROM table WHERE column1 = 'value' ORDER BY column2 DESC LIMIT 0, 10; | SQL | 오자 | 상징적 |
|---|---|---|
> | gt | > |
>= | gte | >= |
< | lt | < |
<= | lte | <= |
= | eq | == 또는 = |
!= | ne | != 또는 <> |
<=> | ns | <=> |
LIKE | like | ?? |
문자 그대로 또는 상징을 사용할 수 있습니다.
INSERT 쿼리를 만들려면 Query::insert() 메소드를 사용하십시오 (여러 행을 한 번에 삽입하려면 Query::insertMultiple() 메소드를 사용하십시오.
use Hindbiswas QueBee Query ;
$ data = [ ' column1 ' => ' value1 ' , ' column2 ' => ' value2 ' ];
$ query = Query:: insert ( $ data )
-> into ( ' table ' )
-> build ();
// Resulting SQL query
// INSERT INTO table (column1, column2) VALUES ('value1', 'value2'); UPDATE 쿼리를 만들려면 Query::update() 메소드를 사용하십시오.
use Hindbiswas QueBee Query ;
$ data = [ ' column1 ' => ' new_value1 ' , ' column2 ' => ' new_value2 ' ];
$ query = Query:: update ( ' table ' )
-> set ( $ data )
-> where ( ' column1 ' , ' value1 ' )
-> build ();
// Resulting SQL query
// UPDATE table SET column1 = 'new_value1', column2 = 'new_value2' WHERE column1 = 'value1'; 쿼리 DELETE 를 만들려면 Query::delete() 메소드를 사용하십시오.
$ query = Query:: delete ( ' table ' )-> where ( ' column1 ' , 1 , ' gt ' )-> build () // Here `gt` is alias for `>`
// Resulting SQL query
// DELETE FROM table WHERE column1 > '1'; CREATE TABLE 쿼리를 만들려면 Table::create() 메소드를 사용하십시오.
use Hindbiswas QueBee Col ;
use Hindbiswas QueBee Table ;
use Hindbiswas QueBee Table Values DefaultVal ;
$ usersTable = Table:: create ( ' users ' )-> columns ([
' id ' => Col:: integer ( 11 )-> unsigned ()-> pk ()-> ai (),
' username ' => Col:: varchar ()-> unique (),
' email ' => Col:: varchar ()-> unique (),
' password ' => Col:: varchar (),
' is_superadmin ' => Col:: integer ( 2 )-> default ( ' 0 ' ),
' create_time ' => Col:: dateTime ()-> default (DefaultVal:: CURRENT_TIME ),
' update_time ' => Col:: dateTime ()-> setOnUpdate ()-> default (DefaultVal:: CURRENT_TIME ),
]);
$ query = $ usersTable -> build ();
// Resulting SQL query
// CREATE TABLE IF NOT EXISTS users (`id` INT(11) UNSIGNED NULL AUTO_INCREMENT, `username` VARCHAR(255) NOT NULL, `email` VARCHAR(255) NOT NULL, `password` VARCHAR(255) NOT NULL, `is_superadmin` INT(2) NOT NULL DEFAULT '0', `create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, `update_time` DATETIME on update CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, CONSTRAINT users_PK PRIMARY KEY (id), CONSTRAINT username_UC UNIQUE (`username`), CONSTRAINT email_UC UNIQUE (`email`)) ENGINE = InnoDB; use Hindbiswas QueBee Col ;
use Hindbiswas QueBee Table ;
use Hindbiswas QueBee Table Values DefaultVal ;
use Hindbiswas QueBee Table Values FK ;
// $usersTable = create a table to constrain with
$ table = Table:: create ( ' tokens ' )-> columns ([
' id ' => Col:: integer ()-> unsigned ()-> pk ()-> ai (),
' selector ' => Col:: varchar (),
' hashed_validator ' => Col:: varchar (),
' user_id ' => Col:: integer ( 11 )-> unsigned (),
' expiry ' => Col:: dateTime (),
])-> foreign ( ' user_id ' )-> onDelete ( FK :: CASCADE )-> reference ( $ usersTable , ' id ' );
// Resulting SQL query
// CREATE TABLE IF NOT EXISTS tokens (`id` INT UNSIGNED NULL AUTO_INCREMENT, `selector` VARCHAR(255) NOT NULL, `hashed_validator` VARCHAR(255) NOT NULL, `user_id` INT(11) UNSIGNED NOT NULL, `expiry` DATETIME NOT NULL, CONSTRAINT tokens_PK PRIMARY KEY (id), FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE) ENGINE = InnoDB; v1.2.0 기준으로 사용 가능한 데이터 유형Col::text()Col::varchar(225)Col::bit()Col::integer()Col::bigInt()Col::mediumInt()Col::smallInt()Col::tinyInt()Col::decimal(11, 6)Col::float(6, 2)Col::double(11, 6)Col::real(11, 6)Col::date()Col::dateTime() 다음은 Quebee를 사용할 때 모범 사례입니다.
사용자 입력 소독 : 쿼리로 사용하기 전에 사용자 입력을 항상 소독하십시오.
오류 처리 : 특히 쿼리를 구축 할 때 예외를 적절하게 처리합니다. Quebee는 잘못된 입력 또는 메소드 호출에 대한 예외를 제외 할 수 있습니다.
데이터베이스 추상화 : 보다 광범위한 데이터베이스 상호 작용을 위해 Quebee와 함께 데이터베이스 추상화 계층을 사용하는 것을 고려하십시오.
코드 조직 : 쿼리 빌드를 실행 및 결과 처리와 분리하여 코드를 논리적으로 구성합니다.
Quebee는 PHP에서 SQL 쿼리 구성을 단순화하여 깨끗하고 안전하며 효율적인 데이터베이스 상호 작용을보다 쉽게 구축 할 수 있습니다. 유창한 API를 사용하면 다양한 데이터베이스 시스템에 대한 SQL 쿼리를 생성하는 사용자 친화적 인 방법을 제공합니다.
보다 자세한 사용 및 사용자 정의 옵션은 Quebee Github 저장소를 참조하십시오.
그게 다야! PHP 응용 프로그램에서 SQL 쿼리를 구축하기 위해 Quebee를 사용할 준비가되었습니다.