2013-08-05 4 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"; 
} 

UPDATE : 그러나, if 문이 보이지 않는다

$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

그 대답은 "aprove"... – jaczes

+0

내 이름은 Alfred Salketer Arengard (Yeh, 나는 알고있다 ...), 그리고 나는이 대답을 "aprove"한다. @@aczes;) – 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

이보십시오에 대해 저장 한 정보에 의해 놀라게 될 것입니다, 보유 :

을 선택하는 경우 때 (선택 TABLE_NAME = '사무실') = 1 다음 다른 '존재'INFORMATION_SCHEMA.TABLES에서 COUNT (*) '존재하지 않는'

+0

안녕하세요, 다시 설명해 주시겠습니까? 이것은 내가 지금 가지고있는 것인데, 쿼리의 결과가 유효한지 (테이블이 존재하는지) 여부를 테스트하는 방법을 모른다. $ tableExists = $ db-> prepare ("COLUMN_NAME은 (는) INFORMATION_SCHEMA.COLUMNS에서 SELECT_NAME을 (를) 선택 하시겠습니까?"); $ tableExists-> execute (array ($ table_array)); if (! is_null ($ tableExist)) {// 코드 수행} – Danconia

-1

이 시도 종료 :

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

희망이 당신을 위해 작동합니다.

관련 문제