SQLite 클래식 튜토리얼login
SQLite 클래식 튜토리얼
작가:php.cn  업데이트 시간:2022-04-13 17:05:02

SQLite-PHP


설치

SQLite3 확장은 PHP 5.3.0부터 기본적으로 활성화되어 있습니다. SQLite3 확장은 --without-sqlite3을 사용하여 컴파일 타임에 비활성화할 수 있습니다.

Windows 사용자는 이 확장 프로그램을 사용하려면 php_sqlite3.dll을 활성화해야 합니다. PHP 5.3.0부터 이 DLL은 Windows 배포판 PHP에 포함되었습니다.

자세한 설치 지침을 보려면 PHP 튜토리얼과 공식 웹사이트를 확인하는 것이 좋습니다.

PHP 인터페이스 API

다음은 PHP 프로그램에서 SQLite 데이터베이스를 사용하기 위한 요구 사항을 충족할 수 있는 중요한 PHP 프로그램입니다. 더 자세한 내용이 필요하면 공식 PHP 문서를 확인하세요.

일련번호API 및 설명
1공용 SQLite3 ::open ( 파일 이름, 플래그, 암호화_키 )

SQLite 3 데이터베이스를 엽니다. 빌드에 암호화가 포함된 경우 사용하려는 키입니다.

파일 이름 filename':memory:' 값이 할당되면 SQLite3::open()은 RAM에 메모리 내 데이터베이스를 생성합니다. 이는 세션 기간 동안만 지속됩니다.

filename이 실제 장치 파일 이름인 경우 SQLite3::open()은 이 매개 변수 값을 사용하여 데이터베이스 파일을 열려고 시도합니다. 해당 이름의 파일이 없으면 해당 이름의 새 데이터베이스 파일이 생성됩니다.

선택적 플래그는 SQLite 데이터베이스를 열지 여부를 결정하는 데 사용됩니다. SQLITE3_OPEN_READWRITE를 사용할 때 기본적으로 켜져 있습니다. SQLITE3_OPEN_CREATE |

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

이 루틴은 A 단축키를 제공합니다. SQL 명령을 실행하기 위한 SQL 명령은 sql 매개변수에 의해 제공되며 여러 SQL 명령으로 구성될 수 있습니다. 이 프로그램은 주어진 데이터베이스에 대해 결과 없이 쿼리를 실행하는 데 사용됩니다.

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

이 루틴은 SQL을 실행합니다. 쿼리에서 쿼리가 결과를 반환하면 SQLite3Result 개체가 반환됩니다.

4public int SQLite3::lastErrorCode( void )

이 루틴은 가장 최근의 실패를 반환합니다. SQLite 요청에 대한 숫자 결과 코드입니다.

5공개 문자열 SQLite3::lastErrorMsg( void )

이 루틴은 가장 최근의 실패를 반환합니다. SQLite 요청에 대한 영어 텍스트 설명입니다.

6public int SQLite3::changes (void)

이 루틴은 가장 최근의 SQL 문에 의해 업데이트, 삽입 또는 삭제된 데이터베이스 행 수입니다.

7public bool SQLite3::close (void)

이 루틴은 SQLite3을 닫기 전에 호출됩니다. ::open() 데이터베이스 연결을 엽니다.

8공개 문자열 SQLite3::escapeString ( string $value )

이 루틴은 문자열을 반환합니다. SQL 문에서는 보안상의 이유로 문자열이 올바르게 이스케이프됩니다.

데이터베이스 연결

다음 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 데이터베이스를 생성해 보겠습니다. 필요에 따라 경로를 변경할 수 있습니다. 데이터베이스가 성공적으로 생성되면 아래와 같은 메시지가 표시됩니다.

Open database successfully

Creating table

다음 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 테이블이 생성되고 아래와 같은 메시지가 표시됩니다.

Opened database successfully
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 테이블에 지정된 레코드가 생성되고 다음 두 줄이 표시됩니다.

Opened database successfully
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();
?>

위 프로그램을 실행하면 다음과 같은 결과가 생성됩니다. :

Opened database successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY =  20000

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY =  20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY =  65000

Operation done successfully

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();
?>

위의 프로그램 실행은 다음과 같은 결과를 생성합니다.

Opened database successfully
1 Record updated successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY =  25000

ID = 2
NAME = Allen
ADDRESS = Texas
SALARY =  15000

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY =  20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY =  65000

Operation done successfully

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();
?>

위 프로그램이 실행되면 다음과 같은 결과가 생성됩니다.

Opened database successfully
1 Record deleted successfully
ID = 1
NAME = Paul
ADDRESS = California
SALARY =  25000

ID = 3
NAME = Teddy
ADDRESS = Norway
SALARY =  20000

ID = 4
NAME = Mark
ADDRESS = Rich-Mond
SALARY =  65000

Operation done successfully

PHP 중국어 웹사이트