Latest web development tutorials

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 & 描述
1public 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 时打开。

2public bool SQLite3::exec ( string $query )

该例程提供了一个执行 SQL 命令的快捷方式,SQL 命令由 sql 参数提供,可以由多个 SQL 命令组成。该程序用于对给定的数据库执行一个无结果的查询。

3public SQLite3Result SQLite3::query ( string $query )

该例程执行一个 SQL 查询,如果查询到返回结果则返回一个SQLite3Result对象。

4public int SQLite3::lastErrorCode ( void )

该例程返回最近一次失败的 SQLite 请求的数值结果代码。

5public string SQLite3::lastErrorMsg ( void )

该例程返回最近一次失败的 SQLite 请求的英语文本描述。

6public int SQLite3::changes ( void )

该例程返回最近一次的 SQL 语句更新或插入或删除的数据库行数。

7public bool SQLite3::close ( void )

该例程关闭之前调用 SQLite3::open() 打开的数据库连接。

8public 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

작업이 성공적으로 완료