İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır

Örnek Uygulamalar

Telefon Rehberi

Telefon rehberi uygulaması için ilk olarak kullanılacak veritabanı tabloları SQL ifadeleri olarak tanımlanmalı. Önce veritabanı sunucusuna bağlantı kuruluyor:

mysql -u root -p

Veritabanı yaratılıyor:

mysql> CREATE DATABASE rehber;

Veritabanı seçiliyor:

mysql> USE rehber;

Tablolar yaratılıyor:

mysql> CREATE TABLE personel (
    ->   personel_ID SMALLINT NOT NULL AUTO_INCREMENT,
    ->   adsoyad VARCHAR(50) NOT NULL,
    ->   telefon VARCHAR(20),
    ->   odano VARCHAR(5),
    ->   email VARCHAR(50),
    ->   evtel VARCHAR(20),
    ->   ceptel VARCHAR(20),
    ->   bolum_ID SMALLINT,
    ->   KEY (personel_ID)
    -> );

mysql> CREATE TABLE bolum (
    ->   bolum_ID SMALLINT NOT NULL AUTO_INCREMENT,
    ->   bolum VARCHAR(50) NOT NULL,
    ->   birim_ID TINYINT,
    ->   KEY (bolum_ID)
    -> );

mysql> CREATE TABLE birim (
    ->   birim_ID TINYINT NOT NULL AUTO_INCREMENT,
    ->   birim VARCHAR(50) NOT NULL,
    ->   KEY (birim_ID)
    -> );

Bu SQL komutları bir dosyaya kaydedilirse mysql istemcisine standart input olarak girilebilir. Örneğin komutlar tables.sql dosyası olarak kaydedildikten sonra komut satırından işletilebilir:

mysql -u root -p < tables.sql

İkinci olarak veritabanı üzerindeki roller tespit ediliyor:

Veritabanı seçiliyor:

mysql> use mysql

Yetkili kullanıcı yaratılıyor:

mysql> INSERT INTO user (host, user, password) VALUES(
    ->  'localhost',
    ->  'rehadmin',
    ->  password('rehadmin')
    -> );

Burada şunlar gerçekleşiyor:

Normal kullanıcı yaratılıyor:

mysql> INSERT INTO user (host, user, password) VALUES(
    ->  'localhost',
    ->  'rehuser',
    ->  password('rehuser')
    -> );

Burada da kullanıcıya verilen haklar sunucumuzun baktığı tüm veritabanlarına erişimi ilgilendirdiğinden güvenlik için hiçbir hak verilmedi.

Kullanıcıların veritabanına erişim hakları düzenleniyor:

mysql> INSERT INTO db
    ->   ( host, db, user,
    ->     Select_priv, Insert_priv, Update_priv, Delete_priv, 
    ->     Create_priv, Drop_priv, Alter_priv) 
    ->
    ->   VALUES(
    ->     'localhost', 'rehber', 'rehadmin',
    ->     'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y'
    ->   );

Yukarıda 'rehber' isimli veritabanına 'rehadmin' kullanıcısının sadece 'localhost'tan erişebileceği ve yalnız 'select', 'insert', 'update', 'delete', 'tablo yaratma' ve 'tablo silme' hakkı olduğu belirtiliyor.

mysql> INSERT INTO db
    ->   ( host, db, user, Select_priv)
    ->     
    ->   VALUES(
    ->     'localhost', 'rehber', 'rehuser', 'Y'
    ->   );

Yukarıda 'rehber' isimli veritabanına 'rehuser' kullanıcısının sadece 'localhost'tan erişebileceği ve yalnız 'select' hakkı olduğu belirtiliyor.

MySQL sunucusu calışmaya başlarken erişim tablolarını hafızaya yükler ve erişim yapılacaşı zaman tablolardan okumak yerine cachine bakar. Dolayısıyla yaptığımız bu değişikliklerin etkin olabilmesi için cache'in yeniden yüklenmesi gerekir:

mysql> FLUSH PRIVILEGES;

Bu komutu da ancak reload hakkı olan kullanıcı calıstırabilir.

Bu SQL komutları da users.sql dosyasına kaydedildikten sonra aynı şekilde komut satırından işletilebilir:

mysql -u root -p < users.sql

Bundan sonraki aşamada veritabanına mevcut kayıtların girilmesi gerekiyordu. Başka bir mysql sunucuda olarak tutulan veritabanı verisi ihraç edilerek (dumping) elde edilen '.txt' türü metin dosyası kendi veritabanımıza dahil edildi (import). Bu noktada import edilecek metin dosyası herhangibir veri tabanından ayrıştırılmış metin dosyası halinde alınabiliyor ise mysqlimport uygulaması ile kolayca MySQL veritabanına aktarılabiliyor.

Veritabanının sahibi rehber olduğu için 'rehber' kullanıcısı olarak veritabanı sunucusuna oturum açılarak aşağıdaki komutlar uygulandı:

Kullanıcı dizine ilk girişinde index.php3 (kaynak kodu) üzerinden search.php3 (kaynak kodu) sayfasına yönlendiriliyor. Burada kullanıcıya gönderilen formun da örneğin header ve footer kısımlarında standart ve dinamik olması için php kullanılıyor. Yine combo box'da da opsiyonlar veritabanından alınarak dinamik olarak oluşturuluyor.

Kullanıcı, formu submit edince srchres.php3 (kaynak kodu) çağrılır. Bu script içinde bir query cümlesi girilen alan değerlerine göre dinamik olarak oluşturulur.

İçindekilerGirişİndex
YukarıİlkÖncekiSonrakiSon
Geriİleri
Yazdır