MySQL

2013-08-05 16 views
7

'da bir tablonun varlığını kontrol etme Bir tablonun var olup olmadığını kontrol etmeye çalışıyorum ve eğer öyleyse bazı işlemler yapın. Masamın kontrolümüzü tamamlamak yerine var olmadığını söyleyen bir hata almaya devam ediyorum. İşte kod:MySQL

$tableExists = $db->prepare("SHOW TABLES LIKE $table_array"); 
$tableExists->execute(); 
if($tableExists->rowCount() > 0) { 
    // do some code 
} else { 
    echo "Unable to add because table does not exists"; 
} 

GÜNCELLEME: Ancak, eğer deyim görünmüyor

$tableExists = $db->prepare("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = ?"); 
$tableExists->execute(array($table_array)); 
if(!is_null($tableExist)) { 
    //do something 
} else { 
    echo "table does not exist; 
} 

tablo var olup olmadığını belirlemek için çalışma: Aşağıdaki önerileri Başına , şimdi aşağıdakileri yapın . Başka ne yapabilirim?

cevap

10

tablo varsa sormak information_schema kullanmayı deneyin.

SELECT 
    * 
FROM 
    information_schema 
WHERE TABLE_NAME = "$table_array" 

gibi bir şey her şeyi bir göz atın information_schema size hoş sizin veritabanları :)

+1

That ... Is ... Müthiş ... Ve bu tablo phpMyAdmin müdahaleci tabloların bir parçası olarak aldığımı söylemek için ... :) – Salketer

+0

böylece "aprove" yanıt ... – jaczes

+0

Benim adım Alfred Salketer Arengard (Yeh, biliyorum ...), ve bu yanıtı "onaylıyorum" ... @jaczes;) – Salketer

1
if(mysql_num_rows(mysql_query("SHOW TABLES LIKE '".$table."'"))==1) 
    echo "Table exists"; 
else echo "Table does not exist"; 

ref: check if MySQL table exists or not

+0

Teşekkürler, aradı ve diğer yanıtı bulamadım – Danconia

+0

Neden tüm bu eksi oyları? Sorun çözülüyor ... Hayır? – Salketer

+0

Yukarıdaki güncellemeden dolayı tablonun var olup olmadığını nasıl kontrol edebileceğimi biliyor musunuz? – Danconia

0

bu deneyin hakkında depoladığı bilgilerin sürpriz olacak tutar:

seçme durum olduğunda (seçmek TABLE_NAME = ofisleri ') = 1 sonra başka 'var' INFORMATION_SCHEMA.TABLES dan saymak (*) 'yok'

+0

Merhaba, bunu tekrar açıklayabilir misiniz? Şu an sahip olduğum şey, sorgu için sonucun geçerli olup olmadığını (tablo var) test etmeyi bilmiyorum. $ tableExists = $ db-> hazırla ("COLUMN_NAME SELECT TABLE_NAME =?"; $ TableExists-> yürütmek (array ($ tablo_dizisi)); if (! is_null ($ tableExist)) {// kod} – Danconia

-1

bu deneyin sonunda:

select * from table_schema //this is your database name  
where table_name // your table name  
= '$table_array' 

Bu sizin için çalışır umuyoruz.