2010-04-06 6 views

답변

87

예, 당신이 할 수처럼 정기적으로 쿼리를 실행할 수있다.

PDO 생성자의 첫 번째 매개 변수 인 dsn 부분에는 데이터베이스 이름이 필요하지 않습니다. mysql:host=localhost을 사용하면됩니다. 그런 다음 적절한 권한이 있으면 일반 SQL 명령을 사용하여 데이터베이스 및 사용자 등을 만들 수 있습니다.

다음은 install.php의 예이며 root로 로그인하고 데이터베이스, 사용자에게 새롭게 생성 된 데이터베이스에 모든 권한을 부여하십시오.

<?php 

$host="localhost"; 

$root="root"; 
$root_password="rootpass"; 

$user='newuser'; 
$pass='newpass'; 
$db="newdb"; 

    try { 
     $dbh = new PDO("mysql:host=$host", $root, $root_password); 

     $dbh->exec("CREATE DATABASE `$db`; 
       CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass'; 
       GRANT ALL ON `$db`.* TO '$user'@'localhost'; 
       FLUSH PRIVILEGES;") 
     or die(print_r($dbh->errorInfo(), true)); 

    } catch (PDOException $e) { 
     die("DB ERROR: ". $e->getMessage()); 
    } 
?> 
+2

@thearchitect 그런 좋은 대답은 받아 들여지지 않습니까? 나는 실망했다. ( –

+0

나의 사과 ..... 지금까지는 대답을 보지 못했다 – Xerri

+0

cPanel 호스팅 계획에서 phpmyadmin이나 명령 행을 사용하는 것 외에는 데이터베이스를 볼 수 없다는 점에 유의한다. "MySQL 데이터베이스"제어판 아래의 cPanel에 나타납니다. – Volomike

-1

네, 그 같은 "테이블 만들기 ..."

+1

PDO 연결을 만들 때 해당 연결을 데이터베이스와 올바르게 연결해야합니까? 나는 그것이 피할 수 있는지 또는 기본 mysql 데이터베이스를 사용하는 것이 위험 할 것인지 아니면 PDO가 연결할 수있는 빈 데이터베이스를 만드는 것이 가장 좋은 것인지 궁금했다. – Xerri

+0

@Haim : 여기에 루트 사용자 및 암호 란 무엇입니까? 자사의 MySQL 사용자 ID와 암호가 맞지 않아? – logan

관련 문제