Programowanie w języku PHP

Instalacja i konfiguracja bazy SQLite

  • 2 komentarze
  • 1739 odsłon
  • Oceń ten tekst jako pierwszy
SQLite

Wstęp

W php 4 standardem obsługi baz danych SQL był MySQL. Jego zaletą był z pewnością fakt że bez problemu można znaleźć serwer z MySQL?em, oraz dużo dobrego oprogramowania napisanego w PHP + MySQL (np. dobrodziejstwo jakim jest phpMyAdmin).
W php 5 wprowadzono jako standard, mieszczące się w jednej bibliotece (nie wymagające żadnego dodatkowego oprogramowania tak jak ma to miejsce w przypadku innych baz danych) rozszerzenie nazwane SQLite. Pod względem możliwości SQLite przewyższa MySQL?a. Jeżeli chodzi o szybkość działania, idą one łeb w łeb. Pod względem bezpieczeństwa, niestety SQLite ustępuje swojemu starszemu bratu :(.

Instalacja

I tu miła niespodzianka ? jeśli używasz php w wersji 5 lub nowszej SQLite jest już zainstalowany!

Jeżeli posiadasz php 4.3.0 lub nowsze w systemie Windows, musisz pobrać SQLite?a http://snaps.php.net/win32/PECL_STABLE/php_sqlite.dll i odpowiednio zmodyfikować plik php.ini.

; do tego folderu skopiuj dll?a
extension_dir = c:/ php/extensions

;odnajdź miejsce w php.ini w którym jest dużo takich linijek:
;extension=php_xxx.dll
;i dopisz do nich następującą
extension=php_sqlite.dll

Komunikowanie się z bazą danych

Istotą SQLite'a jest to że swoje bazy danych przechowujesz w niezaszyfrowanych plikach tekstowych. No cóż, może nie jest to zbyt bezpieczne, ale za to jakie wygodne :) Swoje bazy danych należy zabezpieczyć tak jak zwykłe pliki tekstowe (chyba każdy początkujący w php najpierw jako baz danych używał plików tekstowych :)) czyli np. plikami .htaccess.

Jek to wygląda w praktyce? Bazę danych otwiera się poleceniem:

$db = sqlite_open('nazwa.sqlite'); //nazwa.sqlite to nazwa pliku z bazą danych


Zapytanie sql również wygląda podobnie jak w MySQL'u.

$resource = sqlite_query($db,"zapytanie"); //proszę zwrócić uwagę na parametr $db


Jest tu też odpowiednik mysql_num_rows

$count = sqlite_num_rows($resource);
  

Jeżeli chodzi o tworzenie tablic z zasobów, to wygląda to tak:

$row = sqlite_fetch_array($resource, SQLITE_ASSOC);


Drugi parametr polecenia ustala sposób w jaki będzie można odwoływać się do pól tablicy (w mysql'u służyły do tego polecenia mysql_fetch_row() i mysql_fetch_array() ).
SQLITE_ASSOC - z tym parametrem, do pól będzie się można odwoływać przez ich nazwy ($row['nazwa'])
SQLITE_NUM oznacza numeryczne oznaczenia ($row[1])
SQLITE_BOTH można się odwoływać i tak i tak :)

W SQLite troche inaczej wygląda też nadawanie typu polom:
CREATE TABLE tablica (
      id INTEGER PRIMARY KEY,
      pole1 VARCHAR(32),
      pole2 FLOAT
 );
 
CREATE TABLE tablica (
      id INTEGER PRIMARY KEY,
      pole1,
      pole2
 );


Oba zapisy są prawidłowe, nie trzeba nadawać polom typy, zostaną one zdefiniowane automatycznie. INTEGER PRIMARY KEY to dopowiednik AUTO_INCREMENT z MySQL'a.  Więcej o typach danych: http://sqlite.org/datatypes.html.

Sam język SQL oczywiście wygląda tak samo jak w każdej innej bazie danych ;)

Czy warto używać SQLite'a?

Myślę ze tak. Na razie trudno o serwer z zainstalowanym php 5,  ale w przyszłości o SQLite'a może być równie łatwo jak dziś o MySQL'a. Czy jest to dobre rozszerzenie? Skoro twórcy php wbudowali go jako standardowe rozszerzenie baz danych to chyba o czymś świadczy ;).  
SQLite to nie okrojona wersja MySQL'a! SQLite to również triggersy, zapytania zagnieżdżone, możliwość tworzenia własnych funkcji... opis tych wszystkich bajerów, których brakuje nawet MySQL'owi  znajdziesz w tym artykule: http://webcity.pl/webcity/artykuly.php/t/46

2 komentarze

Qyon 2009-03-21 23:42

<quote>niezaszyfrowanych plikach tekstowych.</quote> Tekstowych?

jmail 2005-09-08 20:42

szkoda tylko że nie jest to napisane o profesjonalnej bazie danych: InterBase, FireBird, PostgreSQL, Oracle czy MS SQL....