Instalacja i konfiguracja bazy SQLite
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:
Zapytanie sql również wygląda podobnie jak w MySQL'u.
Jest tu też odpowiednik mysql_num_rows
Jeżeli chodzi o tworzenie tablic z zasobów, to wygląda to tak:
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:
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
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
);
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
Qyon dnia 21-03-2009 23:42
niezaszyfrowanych plikach tekstowych.
Tekstowych? jmail dnia 08-09-2005 20:42
szkoda tylko że nie jest to napisane o profesjonalnej bazie danych: InterBase, FireBird, PostgreSQL, Oracle czy MS SQL....


