2012-05-14 2 views
0

create 함수에서 데이터베이스를 만들려고합니다. 그러나 오류를 생성하고 표시하지 못합니다. Error creating database: Access denied. 따라서 연결이 이루어져 첫 번째 검사를 통과하게됩니다. 그런 다음 mysql_query이 호출되면 true를 반환하지 않습니다. 누구든지 도와 줄 수 있습니까?PHP와 MySQL을 사용하여 데이터베이스를 만드는 방법은 무엇입니까?

function create($dbName, $tbName, $fields, $types_sizes, $PK) 
     { 
      $sql = null; 
      $con = mysql_connect("borg.cs.up.ac.za","username", "password"); 

      if (!$con) 
      { 
       die('Could not connect: ' . mysql_error()); 
      } 
      else 
       { 
        if(mysql_query("CREATE DATABASE". $dbName, $con)) 
        { 
         echo "Database created"; 
         $dbExists = 1; 
        } 
        else 
        { 
         echo "Error creating database: " . mysql_error(); 
         $dbExists = 0; 
        } 
        $i = 0; 
        if(($con)&&($bdExists = 1)) 
        { 
         $sql . "CREATE TABLE " . $tbName . "("; 
         while($i < count($fields)) 
         { 
          $sql . $fields[$i] . " " + $types_sizes[$i] . ","; 
          $i++; 
         } 
        if($PK != null) 
        { 
         $sql . "PRIMARY KEY (" . $PK .")"; 
        } 
        } 
       mysql_query($sql,$con); 
       mysql_close($con); 
      } 
     } 
+4

에 따라 당신은 아마 당신이 서버에 연결하는 계정에 데이터베이스를 작성하는 데 필요한 권한이 없습니다. –

+0

또한 별도의 테이블 이름에 prefix ($ dbName _. 'tablename')을 설정할 수도 있습니다. – Sergey

+0

PhpMyAdmin 또는 MySQL Workbench를 사용하여 데이터베이스를 만들고 코드를 통해 테이블을 만듭니다. 그것은 당신이 데이터베이스를 만드는 데 필요한 권한이없는 것 같습니다. – Omtara

답변

-1

하면 라인의 공간을 제공하지 않은

if(mysql_query("CREATE DATABASE". $dbName, $con)),"데이터베이스 만들기"후 공간을 제공하십시오 -> "만들 데이터베이스".$dbname를, 그렇지 않으면 데이터베이스 + 이름이 있기 때문에, 결합.

+0

액세스가 거부되었으므로이 쿼리가 1 위를 실행하지 않았습니다. – itachi

+0

사용자가 한 번 실행 한 다음 작동하는지 여부를 결정하십시오. –

+0

OK @ Gaurav Bansal. 감사. 공간이 없습니다. 하지만 지금은 나 에게이 오류를주는 "데이터베이스 만들기 오류 : 액세스 '사용자's11028786 '@'% '데이터베이스'도서 '에 대한 거부,"어떤 아이디어? 내가 이전 함수에서 성공적으로 연결 했으므로 액세스 권한이 있어야합니다. – Chris

0

시도해보십시오. 이것은 테스트되지 않았습니다. 코드에서 몇 줄을 변경했습니다.

function create($dbName, $tbName, $fields, $types_sizes, $PK) 
    { 
     $sql = null; 
     $con = mysql_connect("borg.cs.up.ac.za","username", "password"); 

     if (!$con) 
     { 
      die('Could not connect: ' . mysql_error()); 
     } 
     else 
      { 
    if(mysql_select_db($dbName)) 
       { 
        echo "Database selected"; 
        $dbExists = 1; 
       } 
       else 
       { 
        echo "Error creating database: " . mysql_error(); 
        $dbExists = 0; 
       } 
       $i = 0; 
       if(($con)&&($dbExists == 1)) 
       { 
        $sql = "CREATE TABLE " . $tbName . "("; 
        while($i < count($fields)) 
        { 
         $sql .= $fields[$i] . " " + $types_sizes[$i] . ","; 
         $i++; 
        } 
       if($PK != null) 
       { 
        $sql .= "PRIMARY KEY (" . $PK .")"; 
       } 
       } 
      mysql_query($sql,$con); 
      mysql_close($con); 
     } 
    } 
-1

쉬운, 그냥이 두 단계

$con = mysql_connect("localhost", "root", "password"); 

mysql_select_db("database_name", $con); 
+0

질문은 연결 및 선택하지 않고 코드를 통해 데이터베이스를 만드는 것에 관한 것입니다. – CIRCLE

0
function create($dbName, $tbName, $fields, $types_sizes, $PK) 
    { 
     $sql = null; 
     $con = mysql_connect("borg.cs.up.ac.za","username", "password"); 

     if (!$con) 
     { 
      die('Could not connect: ' . mysql_error()); 
     } 
     else 
      { 
    if(mysql_select_db($dbName)) 
       { 
        echo "Database selected"; 
        $dbExists = 1; 
       } 
       else 
       { 
        echo "Error creating database: " . mysql_error(); 
        $dbExists = 0; 
       } 
       $i = 0; 
       if(($con)&&($dbExists == 1)) 
       { 
        $sql = "CREATE TABLE " . $tbName . "("; 
        while($i < count($fields)) 
        { 
         $sql .= $fields[$i] . " " + $types_sizes[$i] . ","; 
         $i++; 
        } 
       if($PK != null) 
       { 
        $sql .= "PRIMARY KEY (" . $PK .")"; 
       } 
       } 
      mysql_query($sql,$con); 
      mysql_close($con); 
     } 
    } 
관련 문제