-1

このcreate関数では、データベースを作成しようとしています。ただし、作成に失敗してエラーが表示されるためError creating database: Access denied.、これは接続があり、最初のチェックを通過したことを意味します。その後、mysql_queryが呼び出されたときに true を返しません。誰でも助けることができますか?

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

3 に答える 3

-1

行にスペースを与えていません

if(mysql_query("CREATE DATABASE". $dbName, $con)),「データベースの作成」->データベースの作成」の後にスペースを入れてください。そうしないと、データベースと名前が組み合わされます。.$dbname

于 2012-05-14T13:19:18.013 に答える
-1

これを試して。これはテストされていません。コードのいくつかの行を変更しました。

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);
        }
     }
于 2012-05-14T13:24:34.907 に答える
-2

簡単です。この 2 つの手順に従うだけです。

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

mysql_select_db("database_name", $con);
于 2014-02-04T12:07:42.870 に答える