2013-08-05 1 views
0

기본적으로 데이터베이스를 만들고 싶지만 이미 존재하는 mysql 데이터베이스를 만들고 싶다면 문제가 있다는 것을 알고 있습니다. 그렇다면 PHP에 이미 존재하는지 어떻게 확인할 수 있습니까?MySQL 데이터베이스가 PHP에 이미 있는지 확인하는 방법은 무엇입니까?

if (database exist) 
{do nothing} 

//if it doesn't exist 
else 
{create the database} 

지금 이미 데이터베이스 그 자체를 만드는 방법을 알고

다음은 사이비 코드입니다. 나에게 쉽다. 이미 존재하는지 확인하는 방법을 모른다.

+1

DB 작성 명령문에 'IF NOT EXISTS' 절을 추가하지 않는 이유는 무엇입니까? – keithhatfield

+0

대부분의 사이트에는 작은 DB 세트가 있으며 dbs는 직접 작성되므로 일반적으로 문제가되지 않습니다. –

답변

3
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName' 

당신은 당신이 당신이 그것을 만들려고 할 때, 오류가 단순히 (여기에서) 사용하지 않습니다 있도록 DB가 존재하는지 알 필요가있는 경우 :

CREATE DATABASE IF NOT EXISTS DBName; 
0

그냥 가서 테이블을 만들려고 시도하십시오. MySQL은 테이블이 이미 존재하는지 테스트 할 수있는 오류를 발생시킵니다.

어쨌든 오류가 발생하지 않도록 테이블을 만들려면 CREATE 문에 IF NOT EXISTS 절을 추가하면됩니다.

2

이 모든 것은 DB를 선택할 수없는 경우 false을 반환합니다. 이것은 존재하지 않거나 액세스 권한이 없음을 의미합니다.

bool mysql_select_db (string $database_name [, resource $link_identifier = NULL ]) 

bool mysqli_select_db (mysqli $link , string $dbname) 

PDO에서도 가능합니다. 객체로 또는 mysqli는 :

try { 
    $mysqli = new mysqli("localhost", "my_user", "my_password"); 
} catch (\Exception $e) { 
    echo $e->getMessage(), PHP_EOL; 
} 
if ($mysqli->select_db('your_database') === false) { 
    // Create db 
} 
0

당신이 존재하는지 확인하기 원하기 때문에 그것은 하지 않는 경우, 당신이 그것을 만들려면, 당신은 두 가지를 한 번에 수행 할 수 있습니다. 다음 액션을 수행하는 데 필요한 권한이 있다고 가정합니다 :

CREATE DATABASE IF NOT EXISTS <name of the database>; 
관련 문제