2012-05-14 58 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

您也可以爲單獨的表設置前綴($ dbName _。'tablename')名稱 – Sergey

+0

使用PhpMyAdmin或MySQL Workbench創建數據庫,然後通過代碼創建表。看起來你沒有創建數據庫所需的權限。 – Omtara

回答

-1

你有沒有在該行給出的空間

if(mysql_query("CREATE DATABASE". $dbName, $con)),請提供空間後,「創建數據庫- >創建數據庫.$dbname,否則這將是數據庫+名結合。

+0

此查詢沒有運行在第一位,因爲訪問被拒絕。 – itachi

+0

讓用戶運行一次,然後決定它是否工作。 –

+0

好吧@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); 
     } 
    }