SQLite는 - PHP
설치
PHP 5.3.0 이후부터는 sqlite3를 확장은 기본적으로 활성화되어 있습니다. 당신은 컴파일시에--without-sqlite3를 sqlite3를 확장 사용을 중지 할 수 있습니다.
Windows 사용자는이 확장을 사용하는 php_sqlite3.dll를 사용하도록 설정해야합니다. PHP는 이후 5.3.0 이후,이 DLL은 윈도우 PHP 배포판에 포함되어 있습니다.
자세한 설치 지침은 우리의 PHP 튜토리얼 투자 의견 및 공식 웹 사이트를 참조하십시오.
PHP 인터페이스 API
다음은 중요한 PHP 프로그램은 PHP 프로그램에서 SQLite는 데이터베이스를 사용하여 사용자의 요구를 충족합니다. 더 자세한 내용이 필요하면 공식 PHP 문서를 참조하십시오.
序号 | API & 描述 |
---|---|
1 | public void SQLite3::open ( filename, flags, encryption_key ) 打开一个 SQLite 3 数据库。如果构建包括加密,那么它将尝试使用的密钥。 如果文件名filename赋值为':memory:',那么 SQLite3::open() 将会在 RAM 中创建一个内存数据库,这只会在 session 的有效时间内持续。 如果文件名 filename 为实际的设备文件名称,那么 SQLite3::open() 将使用这个参数值尝试打开数据库文件。如果该名称的文件不存在,那么将创建一个新的命名为该名称的数据库文件。 可选的 flags 用于判断是否打开 SQLite 数据库。默认情况下,当使用 SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE 时打开。 |
2 | public bool SQLite3::exec ( string $query ) 该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。该程序用于对给定的数据库执行一个无结果的查询。 |
3 | public SQLite3Result SQLite3::query ( string $query ) 该例程执行一个 SQL 查询,如果查询到返回结果则返回一个SQLite3Result对象。 |
4 | public int SQLite3::lastErrorCode ( void ) 该例程返回最近一次失败的 SQLite 请求的数值结果代码。 |
5 | public string SQLite3::lastErrorMsg ( void ) 该例程返回最近一次失败的 SQLite 请求的英语文本描述。 |
6 | public int SQLite3::changes ( void ) 该例程返回最近一次的 SQL 语句更新或插入或删除的数据库行数。 |
7 | public bool SQLite3::close ( void ) 该例程关闭之前调用 SQLite3::open() 打开的数据库连接。 |
8 | public string SQLite3::escapeString ( string $value ) 该例程返回一个字符串,在 SQL 语句中,出于安全考虑,该字符串已被正确地转义。 |
데이터베이스에 연결
다음 PHP 코드는 기존 데이터베이스에 연결하는 방법을 보여줍니다. 데이터베이스가 존재하지 않는 경우, 생성하고, 마지막으로 데이터베이스 객체를 반환한다.
<? PHP는 클래스 mydb 여기서는 sqlite3를 확장 { 기능 __construct () { 는 $ this-> 오픈 ( '의 test.db'); } } $ DB = 새로운보기 MyDB (); 만약 (! $ DB를) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { "열린 데이터베이스가 성공적으로 N을 \"에코; } ?>
자, 위의 프로그램을 실행 현재 디렉토리에 저희데이터베이스의 test.db를 만들 수 있습니다.필요에 따라 경로를 변경할 수 있습니다. 데이터베이스가 성공적으로 생성하면 아래와 같은 메시지를 표시합니다 :
오픈 데이터베이스를 성공적으로
테이블 만들기
다음 PHP의 코드는 이전에 만든 데이터베이스에서 테이블을 만드는 데 사용됩니다
<? PHP는 클래스 mydb 여기서는 sqlite3를 확장 { 기능 __construct () { 는 $ this-> 오픈 ( '의 test.db'); } } $ DB = 새로운보기 MyDB (); 만약 (! $ DB를) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { "열린 데이터베이스가 성공적으로 N을 \"에코; } $는 SQL = <<< EOF TABLE 회사를 CREATE (ID INT PRIMARY KEY NOT NULL, NULL NOT 이름 텍스트, NULL NOT AGE INT, 주소의 CHAR (50) SALARY에 REAL); EOF; $ 징벌 = $ DB-> 간부 ($의 SQL); 만약 (! $의 RET) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { 에코 "성공적으로 N을 \ 작성한 표"; } $ DB-> 닫기 (); ?>
위의 절차,그것의 test.db에 회사 테이블을 생성하고 표시 할 때 메시지는 다음과 같습니다 :
열린 데이터베이스를 성공적으로 표 성공적으로 생성
INSERT 작업
다음 PHP 프로그램은 위에서 만든 회사 테이블의 레코드를 만드는 방법을 보여줍니다 :
<? PHP는 클래스 mydb 여기서는 sqlite3를 확장 { 기능 __construct () { 는 $ this-> 오픈 ( '의 test.db'); } } $ DB = 새로운보기 MyDB (); 만약 (! $ DB를) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { "열린 데이터베이스가 성공적으로 N을 \"에코; } $는 SQL = <<< EOF INSERT INTO 회사 (ID, 이름, 나이, 주소, SALARY) VALUES (1, '폴', 32 '캘리포니아', 20000.00); INSERT INTO 회사 (ID, 이름, 나이, 주소, SALARY) VALUES (2, '알렌', 25 일 '텍사스', 15000.00); INSERT INTO 회사 (ID, 이름, 나이, 주소, SALARY) VALUES (3 '테디', 23 ', 노르웨이, 20000.00); INSERT INTO 회사 (ID, 이름, 나이, 주소, SALARY) VALUES (4, '마크', 25 일 '리치 사교계', 65000.00); EOF; $ 징벌 = $ DB-> 간부 ($의 SQL); 만약 (! $의 RET) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { "성공적으로 N을 \ 작성한 기록"에코; } $ DB-> 닫기 (); ?>
위의 프로그램은 주어진 레코드에 대한 회사 테이블에 생성됩니다, 실행, 다음과 같은 두 줄을 표시한다 :
열린 데이터베이스를 성공적으로 기록이 성공적으로 생성
SELECT 작업
다음 PHP 프로그램은 이전에 만든 회사 테이블에서 가져 오는 방법을 보여줍니다 및 레코드를 표시합니다 :
<? PHP는 클래스 mydb 여기서는 sqlite3를 확장 { 기능 __construct () { 는 $ this-> 오픈 ( '의 test.db'); } } $ DB = 새로운보기 MyDB (); 만약 (! $ DB를) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { "열린 데이터베이스가 성공적으로 N을 \"에코; } $는 SQL = <<< EOF 회사에서 SELECT *; EOF; $ 징벌 = $ DB-> 쿼리 ($의 SQL); 동안 ($ 행 = $ RET-> fetchArray (SQLITE3_ASSOC)) { . 에코 "ID ="$ 행 [ 'ID'] "\ n을"; . 에코 "NAME ="$ 행 [ 'NAME'] "\ n을"; . 에코 "ADDRESS ="$ 행 [ '주소'] "\ n을"; . 에코 "SALARY ="$ 행 [ 'SALARY'] "\ n \ 없음"; } "작업 N을 \ 성공적으로 완료"에코; $ DB-> 닫기 (); ?>
상기 프로그램이 실행될 때, 다음과 같은 결과를 얻을 :
열린 데이터베이스를 성공적으로 ID = 1 NAME = 폴 ADDRESS = 캘리포니아 SALARY = 20000 ID = 2 NAME = 앨런 ADDRESS = 텍사스 SALARY = 15000 ID = 3 NAME = 테디 ADDRESS = 노르웨이 SALARY = 20000 ID = 4 NAME = 마크 ADDRESS = 리치 사교계 SALARY = 65000 작업이 성공적으로 완료
UPDATE 작업
다음 PHP 코드는, 모든 레코드를 업데이트 COMPANY 테이블에서 얻을 업데이트 된 레코드를 표시하려면 UPDATE 문을 사용하는 방법을 보여줍니다
<? PHP는 클래스 mydb 여기서는 sqlite3를 확장 { 기능 __construct () { 는 $ this-> 오픈 ( '의 test.db'); } } $ DB = 새로운보기 MyDB (); 만약 (! $ DB를) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { "열린 데이터베이스가 성공적으로 N을 \"에코; } $는 SQL = <<< EOF UPDATE 회사가 SALARY = 25000.00을 설정할 경우 ID = 1; EOF; $ 징벌 = $ DB-> 간부 ($의 SQL); 만약 (! $의 RET) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { "레코드를 n을 \ 성공적으로 업데이트", $ DB-> 변경 () 에코; } $는 SQL = <<< EOF 회사에서 SELECT *; EOF; $ 징벌 = $ DB-> 쿼리 ($의 SQL); 동안 ($ 행 = $ RET-> fetchArray (SQLITE3_ASSOC)) { . 에코 "ID ="$ 행 [ 'ID'] "\ n을"; . 에코 "NAME ="$ 행 [ 'NAME'] "\ n을"; . 에코 "ADDRESS ="$ 행 [ '주소'] "\ n을"; . 에코 "SALARY ="$ 행 [ 'SALARY'] "\ n \ 없음"; } "작업 N을 \ 성공적으로 완료"에코; $ DB-> 닫기 (); ?>
상기 프로그램이 실행될 때, 다음과 같은 결과를 얻을 :
열린 데이터베이스를 성공적으로 1 레코드가 성공적으로 업데이트 ID = 1 NAME = 폴 ADDRESS = 캘리포니아 SALARY = 25000 ID = 2 NAME = 앨런 ADDRESS = 텍사스 SALARY = 15000 ID = 3 NAME = 테디 ADDRESS = 노르웨이 SALARY = 20000 ID = 4 NAME = 마크 ADDRESS = 리치 사교계 SALARY = 65000 작업이 성공적으로 완료
DELETE 작업
다음 PHP 코드는 DELETE 문은 모든 레코드를 삭제 한 다음 회사 테이블에서 촬영하고 나머지 기록을 표시 사용하는 방법을 보여줍니다 :
<? PHP는 클래스 mydb 여기서는 sqlite3를 확장 { 기능 __construct () { 는 $ this-> 오픈 ( '의 test.db'); } } $ DB = 새로운보기 MyDB (); 만약 (! $ DB를) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { "열린 데이터베이스가 성공적으로 N을 \"에코; } $는 SQL = <<< EOF 회사는 어디에서 삭제 ID = 2; EOF; $ 징벌 = $ DB-> 간부 ($의 SQL); 만약 (! $의 RET) { 에코 $ DB-> lastErrorMsg (); } 그밖에 { $ DB-> 변경 () 에코, "기록은 N을 \ 성공적으로 삭제"; } $는 SQL = <<< EOF 회사에서 SELECT *; EOF; $ 징벌 = $ DB-> 쿼리 ($의 SQL); 동안 ($ 행 = $ RET-> fetchArray (SQLITE3_ASSOC)) { . 에코 "ID ="$ 행 [ 'ID'] "\ n을"; . 에코 "NAME ="$ 행 [ 'NAME'] "\ n을"; . 에코 "ADDRESS ="$ 행 [ '주소'] "\ n을"; . 에코 "SALARY ="$ 행 [ 'SALARY'] "\ n \ 없음"; } "작업 N을 \ 성공적으로 완료"에코; $ DB-> 닫기 (); ?>
상기 프로그램이 실행될 때, 다음과 같은 결과를 얻을 :
열린 데이터베이스를 성공적으로 (1) 기록이 삭제 ID = 1 NAME = 폴 ADDRESS = 캘리포니아 SALARY = 25000 ID = 3 NAME = 테디 ADDRESS = 노르웨이 SALARY = 20000 ID = 4 NAME = 마크 ADDRESS = 리치 사교계 SALARY = 65000 작업이 성공적으로 완료