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

этот запрос не запускался в 1-м месте, поскольку доступ был отклонен. – itachi

+0

Позвольте пользователю запустить его один раз, а затем решить, работает он или нет. –

+0

ОК так @Gaurav Bansal. Благодарю. Не хватало места. Но теперь он дал мне эту ошибку «Ошибка создания базы данных: доступ запрещен для пользователя 's11028786' @ '%' в базу данных« книги », любые идеи? я должен иметь доступ, потому что я успешно подключаюсь в своей предыдущей функции. – Chris

0

Попробуйте это. Это untested.Changed некоторые строки в вашем коде.

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); 
     } 
    } 
Смежные вопросы