Latest web development tutorials

SQLite - PHP

zainstalować

Od PHP 5.3.0 roku rozszerzenie SQLite3 jest domyślnie włączona. Można wyłączyć SQLite3 długotrwałym użytkowaniu--without-sqlite3 w czasie kompilacji.

Użytkownicy systemu Windows muszą umożliwiać php_sqlite3.dll używać tego rozszerzenia. Od PHP 5.3.0 roku, ten DLL jest zawarte w dystrybucji systemu Windows PHP.

Aby uzyskać szczegółowe instrukcje instalacji, zobacz naszą rekomendację Tutorial PHP i jej oficjalnej stronie internetowej.

Interfejs API PHP

Oto ważny program PHP do swoich potrzeb za pomocą bazy danych SQLite w programie PHP. Jeśli potrzebujesz więcej informacji, zapoznaj się z oficjalnej dokumentacji 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 语句中,出于安全考虑,该字符串已被正确地转义。

Połączenia z bazą danych

Poniższy kod PHP pokazuje, jak podłączyć się do istniejącej bazy danych. Jeśli baza danych nie istnieje, zostanie utworzony, a na końcu zwraca obiekt bazy danych.

<? Php
   Klasa MojaBD rozciąga SQLite3
   {
      Funkcja __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MojaBD ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Otwarty bazie pomyślnie \ n";
   }
?>

A teraz uruchomić powyższy program, tworzyć naszątest.db bazy danych w bieżącym katalogu.Można zmienić ścieżkę w miarę potrzeb. Jeśli baza danych jest utworzona pomyślnie, wyświetli się poniższy komunikat:

Otwarcie bazy danych pomyślnie

Tworzenie tabeli

Poniższy fragment kodu PHP będą wykorzystywane do tworzenia tabeli w wcześniej utworzonej bazy danych:

<? Php
   Klasa MojaBD rozciąga SQLite3
   {
      Funkcja __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MojaBD ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Otwarty bazie pomyślnie \ n";
   }

   $ Sql ​​= <<< EOF
      CREATE TABLE COMPANY
      (ID INT PRIMARY KEY NOT NULL,
      NAZWA TEXT NOT NULL,
      AGE INT NOT NULL,
      CHAR ADDRESS (50),
      WYNAGRODZENIE Real);
EOF;

   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Tabela utworzona pomyślnie \ n";
   }
   $ Db-> close ();
?>

Jeżeli powyższa procedura tworzy tabelę firma wtest.db i wyświetla się komunikat pokazany poniżej:

Otwarty w bazie powodzeniem
Tabela została utworzona pomyślnie

operacja INSERT

Poniższy program PHP pokazuje, jak utworzyć rekord w tabeli Spółka utworzyła powyżej:

<? Php
   Klasa MojaBD rozciąga SQLite3
   {
      Funkcja __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MojaBD ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Otwarty bazie pomyślnie \ n";
   }

   $ Sql ​​= <<< EOF
      INSERT INTO COMPANY (id, nazwisko, wiek, adres, wynagrodzenia)
      Wartości (1, 'Paul', 32 'California', 20000.00);

      INSERT INTO COMPANY (id, nazwisko, wiek, adres, wynagrodzenia)
      WARTOŚCI (2, 'Allen', 25 'Texas', 15000.00);

      INSERT INTO COMPANY (id, nazwisko, wiek, adres, wynagrodzenia)
      VALUES (3, "Miś", 23 ", Norwegii, 20000.00);

      INSERT INTO COMPANY (id, nazwisko, wiek, adres, wynagrodzenia)
      VALUES (4 'Mark', 25 'Rich-Mond', 65000.00);
EOF;

   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Rekordy utworzone pomyślnie \ n";
   }
   $ Db-> close ();
?>

Powyższy program jest wykonywany, to zostanie utworzony w tabeli Spółki za dany zapis i wyświetla następujące dwa wiersze:

Otwarty w bazie powodzeniem
Rekordy utworzony pomyślnie

operacje SELECT

Poniższy program PHP pokazuje, jak dostać się z tabelą Spółka utworzyła wcześniej i wyświetla zapis:

<? Php
   Klasa MojaBD rozciąga SQLite3
   {
      Funkcja __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MojaBD ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Otwarty bazie pomyślnie \ n";
   }

   $ Sql ​​= <<< EOF
      Select * from spółki;
EOF;

   $ Ret = $ db-> query ($ sql);
   while ($ row = $ RET> fetchArray (SQLITE3_ASSOC)) {
      . Echo "id =" $ row [ 'id'] "\ n" .;
      . Echo "name =" $ row [ 'NAZWA'] "\ n" .;
      . Echo "address =" $ row [ "adres"] "\ n" .;
      . Echo "Pensja =" $ row [ 'WYNAGRODZENIE'] "\ n \ n" .;
   }
   echo "Operacja odbywa się pomyślnie \ n";
   $ Db-> close ();
?>

Gdy powyższy program jest wykonywany, pojawia się następujące wyniki:

Otwarty w bazie powodzeniem
ID = 1
NAME = Paul
Address = California
Pensja = 20000

ID = 2
NAME = Allen
Address = Texas
Pensja = 15000

ID = 3
NAME = Teddy
Address = Norwegii
Pensja = 20000

ID = 4
NAME = Mark
Address = Rich-Mond
Pensja = 65000

Operacja odbywa się pomyślnie

operacja UPDATE

Poniższy kod PHP pokazuje, jak korzystać z instrukcji UPDATE zaktualizować wszystkie rekordy, a następnie uzyskać z tabeli Spółka i wyświetlić zaktualizowaną rekord:

<? Php
   Klasa MojaBD rozciąga SQLite3
   {
      Funkcja __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MojaBD ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Otwarty bazie pomyślnie \ n";
   }
   $ Sql ​​= <<< EOF
      UPDATE COMPANY ustawić się wynagrodzenie = 25000.00 gdzie id = 1;
EOF;
   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo $ db-> zmiany (), "Record zaktualizowane pomyślnie \ n";
   }

   $ Sql ​​= <<< EOF
      Select * from spółki;
EOF;
   $ Ret = $ db-> query ($ sql);
   while ($ row = $ RET> fetchArray (SQLITE3_ASSOC)) {
      . Echo "id =" $ row [ 'id'] "\ n" .;
      . Echo "name =" $ row [ 'NAZWA'] "\ n" .;
      . Echo "address =" $ row [ "adres"] "\ n" .;
      . Echo "Pensja =" $ row [ 'WYNAGRODZENIE'] "\ n \ n" .;
   }
   echo "Operacja odbywa się pomyślnie \ n";
   $ Db-> close ();
?>

Gdy powyższy program jest wykonywany, pojawia się następujące wyniki:

Otwarty w bazie powodzeniem
1 Record pomyślnie zaktualizowane
ID = 1
NAME = Paul
Address = California
Pensja = 25000

ID = 2
NAME = Allen
Address = Texas
Pensja = 15000

ID = 3
NAME = Teddy
Address = Norwegii
Pensja = 20000

ID = 4
NAME = Mark
Address = Rich-Mond
Pensja = 65000

Operacja odbywa się pomyślnie

operacja usuwania

Poniższy kod PHP pokazuje, jak korzystać z DELETE usuwa wszelkie rekordy, a następnie pobierane z tabeli Spółka i wyświetla pozostały do ​​nagrywania:

<? Php
   Klasa MojaBD rozciąga SQLite3
   {
      Funkcja __construct ()
      {
         $ This-> open ( 'test.db');
      }
   }
   $ Db = new MojaBD ();
   if (! $ db) {
      echo $ db-> lastErrorMsg ();
   } Else {
      echo "Otwarty bazie pomyślnie \ n";
   }
   $ Sql ​​= <<< EOF
      Usuń z firmą, w której ID = 2;
EOF;
   $ Ret = $ db-> exec ($ sql);
   if (! $ ret) {
     echo $ db-> lastErrorMsg ();
   } Else {
      echo $ db-> zmiany (), "Record usunięte pomyślnie \ n";
   }

   $ Sql ​​= <<< EOF
      Select * from spółki;
EOF;
   $ Ret = $ db-> query ($ sql);
   while ($ row = $ RET> fetchArray (SQLITE3_ASSOC)) {
      . Echo "id =" $ row [ 'id'] "\ n" .;
      . Echo "name =" $ row [ 'NAZWA'] "\ n" .;
      . Echo "address =" $ row [ "adres"] "\ n" .;
      . Echo "Pensja =" $ row [ 'WYNAGRODZENIE'] "\ n \ n" .;
   }
   echo "Operacja odbywa się pomyślnie \ n";
   $ Db-> close ();
?>

Gdy powyższy program jest wykonywany, pojawia się następujące wyniki:

Otwarty w bazie powodzeniem
1 Rekord został pomyślnie usunięty
ID = 1
NAME = Paul
Address = California
Pensja = 25000

ID = 3
NAME = Teddy
Address = Norwegii
Pensja = 20000

ID = 4
NAME = Mark
Address = Rich-Mond
Pensja = 65000

Operacja odbywa się pomyślnie