2013-08-05 15 views
7

पर कोई तालिका मौजूद है, मैं यह जांचने की कोशिश कर रहा हूं कि कोई तालिका मौजूद है या नहीं, और यदि ऐसा है तो कुछ क्रियाएं करें। मुझे यह बताते हुए एक त्रुटि मिलती है कि मेरी जांच पूरी करने के बजाय तालिका मौजूद नहीं है। यहाँ कोड है:यह जांच कर रहा है कि 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"; 
} 

अद्यतन:

$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; 
} 

हालांकि, अगर बयान प्रतीत नहीं होता है निर्धारित करने के लिए तालिका मौजूद है या नहीं काम करने के लिए: नीचे दिए गए सुझावों के अनुसार, मैं अब नीचे दिए कार्य । इसके अलावा मेरे द्वारा और क्या किया जा सकता है?

उत्तर

10

यदि तालिका मौजूद है पूछने के लिए information_schema का उपयोग करें। जैसे

SELECT 
    * 
FROM 
    information_schema 
WHERE TABLE_NAME = "$table_array" 

कुछ सब कुछ पर एक नज़र डालें information_schema रखती है, आप सुखद जानकारी अपने डेटाबेस :)

+1

वह ... है ... बहुत बढ़िया ... और कहने के लिए कि मैंने उस तालिका को phpMyAdmin घुसपैठ तालिकाओं के हिस्से के रूप में लिया ... :) – Salketer

+0

तो जवाब दें " – jaczes

+0

मेरा नाम अल्फ्रेड साल्केटर एनार्डर्ड है (हाँ, मुझे पता है ...), और मैं इस जवाब को "अनुमोदित" करता हूं ... @jaczes;) – Salketer

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

रेफरी: check if MySQL table exists or not

+0

धन्यवाद, मैंने खोज की और उसे अन्य उत्तर नहीं मिला – Danconia

+0

उन सभी ऋणों के वोट क्यों? यह समस्या को ठीक करता है ... नहीं? – Salketer

+0

क्या आप जानते हैं कि मैं कैसे जांच सकता हूं कि तालिका ऊपर दिए गए अद्यतन को दी गई है या नहीं? – Danconia

0

कोशिश इस बारे में संग्रहीत है से हैरान किया जाएगा:

चयन मामला है जब (चयन (*) INFORMATION_SCHEMA.TABLES जहां TABLE_NAME = 'कार्यालयों') = 1 फिर 'मौजूद है' और से गिनती 'मौजूद नहीं है' अंत

+0

हाय, क्या आप इसे फिर से समझा सकते हैं? मेरे पास अब यही है, मुझे यह नहीं पता कि यह जांचने के लिए कि क्वेरी के परिणाम वैध हैं (तालिका मौजूद है) या नहीं। $ tableExists = $ db-> तैयार करें ("INUMMATION_SCHEMA.COLUMNS से ​​COLUMN_NAME चुनें जहां TABLE_NAME =?"); $ TableExists-> पर अमल (सरणी ($ table_array)); अगर (! is_null ($ tableExist)) {// do code} – Danconia

-1

इस प्रयास करें:

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

आशा है कि यह आपके लिए काम करता है।

संबंधित मुद्दे