English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQLite PHP

설치

PHP 5.3.0 부터 기본적으로 SQLite가 활성화됩니다.3 확장을 사용하여 컴파일할 수 있습니다. --without-sqlite3 SQLite를 비활성화3 확장을 활성화해야 합니다.

Windows 사용자는 php_sqlite3.dll을 사용하려면 PHP 5.3.0 부터, 이 DLL이 PHP의 Windows 배포판에 포함됩니다.

자세한 설치 지침을 알고 싶으시면, 우리의 PHP 강의와 그 공식 웹사이트를 확인하는 것이 좋습니다.

PHP 인터페이스 API

아래는 중요한 PHP 프로그램으로, PHP 프로그램에서 SQLite 데이터베이스를 사용하는 데 필요한 요구사항을 충족시킵니다. 자세한 정보를 필요로 하시면 PHP 공식 문서를 확인하시기 바랍니다.

순번API & 설명
1public void SQLite3::open ( filename, flags, encryption_key )

SQLite를 열기 3 데이터베이스를 열 때, 암호화가 포함되어 있다면, 사용할 키를 시도합니다.

파일 이름 filename filename에 할당됩니다. ':memory:'그렇다면 SQLite3::open()는 RAM에서 메모리 데이터베이스를 생성하며, 이는 세션의 유효 기간 동안만 유지됩니다.

파일 이름 filename이 실제 장치 파일 이름이면, SQLite3::open()는 이 파라미터 값을 사용하여 데이터베이스 파일을 열려고 시도합니다. 파일 이름이 존재하지 않으면 해당 이름의 새 데이터베이스 파일을 생성합니다.

SQLite 데이터베이스를 열는지 여부를�断하기 위한 선택적인 flags입니다. 기본적으로 SQLITE를 사용할 때는 이 flag를 사용하여 데이터베이스를 열기로 설정됩니다.3_OPEN_READWRITE | SQLITE3_OPEN_CREATE 시 열림.

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

이 예제는 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 )

이 절차는 SQLite를 닫습니다.3::open() opened database connection.

8public string SQLite3::escapeString ( string $value )

이 절차는 SQL 문장에서 보안을 위해 올바르게 인코딩된 문자열을 반환합니다.

Database connection

아래 PHP 코드는 기존 데이터베이스에 연결하는 방법을 보여줍니다. 데이터베이스가 존재하지 않으면 생성되고, 마지막으로 데이터베이스 객체가 반환됩니다.

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
?>

지금, 위 프로그램을 실행하여 현재 디렉토리에 데이터베이스를 생성해 보겠습니다 test.db。필요에 따라 경로를 변경할 수 있습니다. 데이터베이스가 성공적으로 생성되면 다음과 같은 메시지가 표시됩니다:

Database opened successfully

테이블 생성

아래 PHP 코드 블록은 이전에 생성된 데이터베이스에 테이블을 생성하는 데 사용됩니다:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY     NOT NULL,
      NAME           TEXT    NOT NULL,
      AGE            INT     NOT NULL,
      ADDRESS        CHAR(50),
      SALARY         REAL);
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Table created successfully\n";
   }
   $db->close();
?>

위 프로그램이 실행될 때, test.db 중에 COMPANY 테이블을 생성하고 다음과 같은 메시지를 표시합니다:

데이터베이스가 성공적으로 열렸습니다
Table created successfully

INSERT 작업

아래 PHP 프로그램은 위에서 생성된 COMPANY 테이블에 기록을 생성하는 방법을 보여줍니다:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (1, 'Paul', 32, 'California', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (2, 'Allen', 25, 'Texas', 15000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );
      INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY)
      VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo "Records created successfully\n";
   }
   $db->close();
?>

위 프로그램이 실행될 때, COMPANY 테이블에 주어진 기록이 생성되고, 다음 두 행이 표시됩니다:

데이터베이스가 성공적으로 열렸습니다
Records created successfully

SELECT 작업

아래의 PHP 프로그램은 이전에 생성한 COMPANY 테이블에서 기록을 가져오고 표시하는 방법을 보여줍니다:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Operation done successfully\n";
   $db->close();
?>

이 프로그램이 실행될 때, 다음과 같은 결과를 생성합니다:

데이터베이스가 성공적으로 열렸습니다
ID = 1
NAME = Paul
ADDRESS = 캘리포니아
SALARY =  20000
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000
ID = 3
NAME = Teddy
ADDRESS = 노르웨이
SALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-월요일
SALARY =  65000
작업이 성공적으로 완료되었습니다

UPDATE 작업

아래의 PHP 코드는 UPDATE 문을 사용하여 어떤 기록을 업데이트하고, COMPANY 테이블에서 업데이트된 기록을 가져오고 표시하는 방법을 보여줍니다:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      UPDATE COMPANY set SALARY = 25000.00 where ID=1;
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
      echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Record updated successfully\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Operation done successfully\n";
   $db->close();
?>

이 프로그램이 실행될 때, 다음과 같은 결과를 생성합니다:

데이터베이스가 성공적으로 열렸습니다
1 Record updated successfully
ID = 1
NAME = Paul
ADDRESS = 캘리포니아
SALARY =  25000
ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000
ID = 3
NAME = Teddy
ADDRESS = 노르웨이
SALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-월요일
SALARY =  65000
작업이 성공적으로 완료되었습니다

DELETE 작업

아래의 PHP 코드는 DELETE 문을 사용하여 어떤 기록을 지우고, COMPANY 테이블에서 나머지 기록을 가져오고 표시하는 방법을 보여줍니다:

<?php
   class MyDB extends SQLite3
   {
      function __construct()
      {
         $this->open('test.db');
      }
   }
   $db = new MyDB();
   if(!$db){
      echo $db->lastErrorMsg();
   } else {
      echo "Opened database successfully\n";
   }
   $sql =<<<EOF
      DELETE from COMPANY where ID=2;
EOF;
   $ret = $db->exec($sql);
   if(!$ret){
     echo $db->lastErrorMsg();
   } else {
      echo $db->changes(), " Record deleted successfully\n";
   }
   $sql =<<<EOF
      SELECT * from COMPANY;
EOF;
   $ret = $db->query($sql);
   while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
      echo "ID = ". $row['ID'] . "\n";
      echo "NAME = ". $row['NAME'] ."\n";
      echo "ADDRESS = ". $row['ADDRESS'] ."\n";
      echo "SALARY = ". $row['SALARY'] ."\n\n";
   }
   echo "Operation done successfully\n";
   $db->close();
?>

이 프로그램이 실행될 때, 다음과 같은 결과를 생성합니다:

데이터베이스가 성공적으로 열렸습니다
1 데이터가 성공적으로 지워졌습니다
ID = 1
NAME = Paul
ADDRESS = 캘리포니아
SALARY =  25000
ID = 3
NAME = Teddy
ADDRESS = 노르웨이
SALARY =  20000
ID = 4
NAME = Mark
ADDRESS = Rich-월요일
SALARY =  65000
작업이 성공적으로 완료되었습니다