Bazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatu
Click here to load reader
-
Upload
grzegorz-bartman -
Category
Technology
-
view
776 -
download
2
description
Transcript of Bazy danych w Drupalu 7. Przygotowanie tabeli przechowującej wpisy chatu
Moduł z poprzednich zajęć
Jeżeli ktoś nie ma modułu z poprzednich
zajęć, pliki można ściągnąć
1.Plik first_module.module
http://pastebin.com/h5WSqigw
2. Plik first_module.info
http://pastebin.com/LZPRW12P
Bazy danych w Drupalu 7. Przygotowanie tabeli
przechowującej wpisy chatu.
prezentujący:Agnieszka Piłasiewicz
stanowiskoProgramistka Serwisów Internetowych
Baza danych – plan zajęć
1. Przygotowanie pliku my_module.install.
2. Przygotowanie schematu tabeli bazy
danych (hook_schema).
3. Aktualizacja modułu (hook_update_N).
4. Pierwsze zapytanie do bazy.
Plik .install
W nim dodajemy funkcje potrzebne przy
instalacji modułu, odinstalowaniu modułu lub
jego aktualizacji.
Zadanie
Przygotujmy plik instalacyjny
my_module.install
Tabela chatu
Taką tabelę chcemy przygotować:
Opis pól w tabeli chatu
● Chid – identyfikator wpisu● Timestamp – data dodania wpisu● Body – treść wpisu● Uid – identyfikator użytkownika
Unix Timestamp
Liczba sekund, która upłynęła od
1 stycznia 1970 czyli od chwili zwanej
początkiem epoki Uniksa, np.
1365495972
to
2013-04-09 10:26:12
Zapytanie w mySQL
Zapytanie w MySQL wyglądałoby tak:
CREATE TABLE `chat_entry` (
`chid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`timestamp` int(10) unsigned NOT NULL,
`body` varchar(255) NOT NULL,
`uid` int(11) NOT NULL,
PRIMARY KEY (`chid`),
KEY `chat_timestamp` (`timestamp`)
);
… a tak to wygląda w Drupalu
W Drupalu używamy hook_schema.
Hook_schema składa się z nazwy i opisu tabeli, defunicji pól
tabeli, definicji kluczy i indeksów.
function first_module_schema() {
return array(
'chat_entry' => array(
'description' => '...',
'fields' => array( // … ),
)
);
}
Typy danych pól bazy danych
● Porównanie typów danych pól bazy danych w Drupalu i MySQL ze strony http://drupal.org/node/159605 typy pól w bazie
Hook_update_N
● Jest to funkcja używana przy wprowadzaniu zmian w module
● mymodule_update_7100(): pierwsza funkcja update dla wersji modułu 7.x-1.*.
● Następne funkcje mymodule_update_7101() mymodule_update_7102()
Uaktualnienie modułu
Należy wejść na stronę update.php np.
http://www.drupal-zajecia.lamp/update.php
Czym jest DB TNG
(Database The Next Generation)
Obiektowe API służące do tworzenia
zapytań do bazy danych.
Proste wyświetlenie wpisów
● Wchodzimy do phpMyAdmin i wstawiamy 2-3 wpisy
● Dodajemy funkcję wysyłającą zapytanie SELECT do bazy danych.
● W treści wcześniej utworzonej strony wyświetlamy wpisy z bazy.
Przydatne linki
1.API bazy danych
http://api.drupal.org/api/drupal/includes!database!
database.inc/group/database/7
2.Typy pól w bazie http://drupal.org/node/159605
3.hook_schema http://api.drupal.org/api/drupal/modules!
system!system.api.php/function/hook_schema/7
4. hook_update_N
http://api.drupal.org/api/drupal/modules%21system
%21system.api.php/function/hook_update_N/7
Pytania???
Dziękuję za uwagę