PHP ile Mysql’de Veritabanı, Tablo Kontrolü Yapmak?

Php ile MYSQL’de kullandığımız veritabanı içerisinde, herhangi bir tablo var mı veya belli bir tablo var mı diye kontrol yapmamız gerekebilir.

Bu yöntem daha çok bir sistem yazarken tabloları ilk oluşturmak için kullanılır. Eğer tablolar yoksa Tabloyu oluştur varsa hiçbir şey yapma demek için kullanılan bir yöntemdir.

Bu kontrol için birden fazla yöntem vardır. Ben ilk önce en çok kullanılan yöntemi gösterip, sonra diğerlerine değineceğim.

1. Yöntem

Bu yöntemde SQL’in SHOW TABLES özelliğinden yararlanıyoruz. Örnek kod aşağıdadır;

$dbismi = 'veritabaniadi';
mysql_connect('hostismi', 'kullaniciadi','sifre') or die ('Bağlantı hatası oluştu'); 
$ed_sql = 'SHOW TABLES FROM '.$dbismi;
$edsonuc = mysql_query($ed_sql);

if (!$edsonuc) {
echo 'kuruluma başla';
} else {
echo 'zaten kurulum yapılmış';
} 

İlk yöntemimizde db’nin içinde herhangi isimde bir tablo olup olmadığını kontrol ediyoruz. Yani başka birşeye ait bir tablo varsa Kurulum Yapılmış sayılacaktır.

2. Yöntem

İkinci yöntemimizde ilkine benziyor ama bu kez belirli bir tablonun olup olmadığını kontrol ediyoruz.

mysql_connect('hostismi', 'kullaniciadi','sifre') or die ('Bağlantı hatası oluştu');
mysql_select_db('veritabaniismi');
$table = 'test_table';
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1) {
    echo 'Tablo bulundu';
} else {
echo 'Tablo bulunamadı';
}

3.Yöntem

Bu yöntemdeyse information_schema özelliğini kullanıcaz.

mysql_connect('hostismi', 'kullaniciadi','sifre') or die ('Bağlantı hatası oluştu');
$dbismi = 'veritabaniadi';
$table = 'test_table';
$ed_sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = '$dbismi' AND table_name = '$table';";
$edsonuc = mysql_query($ed_sql);
if (!$edsonuc) {
echo 'kuruluma başla';
} else {
echo 'zaten kurulum yapılmış';
}

Yöntemlerimiz bu kadar. Hepsi ile aynı yada benzer sonuca ulaşabilirsiniz. Bir de bunun fonksiyonlaştırılmış halini sizlere sunuyorum. Kullanımıyla birlikte.

// Veritabanı mızda Tablo kontrolü yapıyoruz
function ed_tablocheck($ed_db,$ed_dbtablo) {
                $sonuc=mysql_list_tables($ed_db);
                $sayi=mysql_num_rows($sonuc);
                $tablosay=0;
                for ($sayis=0; $sayis < $sayi; $sayis++) {
                if (mysql_tablename($sonuc, $sayis) == $ed_dbtablo) {
                $tablosay++;
                }
                }
                mysql_free_result($sonuc);
                if ($tablosay > 0)
                return true;
                else
                return false;
                }

// KULLANIMI
//Bağlantı sağlandı
@mysql_connect("localhost","kullaniciadi","sifre");

        if (ed_tablocheck('dbismi','tabloismi')) {
        echo "Kurulum Yapılmış";
        }else{
        echo "Kuruluma Başla";
        }
*/

DAHA FAZLA İÇERİK

Microsoft Band yok Satıyor Microsoft Band yok Satıyor

23 Aralık 2014, Salı

Nexus Root Toolkit ile Kolay Root Nexus Root Toolkit ile Kolay Root

2 Aralık 2014, Salı

GoPro, Drone Üretmeye Başlıyor GoPro, Drone Üretmeye Başlıyor

29 Kasım 2014, Cumartesi

SİZDE YORUM YAPIN