【发布时间】:2012-05-14 13:10:28
【问题描述】:
在这个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);
}
}
【问题讨论】:
-
您可能没有必要的权限在您连接到服务器的帐户上创建数据库。
-
您也可以为单独的表在名称中设置前缀 ($dbName_.'tablename')
-
使用 PhpMyAdmin 或 MySQL Workbench 创建数据库,然后通过代码创建表。您似乎没有创建数据库所需的权限。
-
我确实拥有全部权限,所以这不是问题。我知道它与连接有关,而不是查询。
-
@Chris 错误消息准确地告诉您您没有权限。如果是连接问题,您将不会收到该消息。和
mysql_*被正式弃用。你应该学习mysqli或更好的PDO。
标签: php mysql database create-table