没有选择数据库 - PHP和MySQL

10

我正在尝试连接到我的数据库,但当我运行代码时,出现了错误。请问有人可以告诉我是什么问题,还有我的PHP代码中是否有任何错误吗?谢谢。

Error: No database selected

PHP 代码:

include('.conf.php');
$prof = $_GET['profile'];
$prof = addslashes(htmlentities($prof));
$query = "SELECT * FROM aTable where id = '".mysql_real_escape_string($prof)."'";
$info_array = mysql_query($query, $con) or die (mysql_error()).;

while($row = mysql_fetch_array( $info_array )) 
{
    echo $row['num1'];
    echo "</br>";
    echo $row['num2'];
    echo "</br>";
    echo $row['num3'];
    echo "</br>";
    echo $row['num4'];
};

mysql_close($con);

.conf.php文件:

<?php
    $conf['db_hostname'] = "xxx";
    $conf['db_username'] = "xxx";
    $conf['db_password'] = "xxx";
    $conf['db_name'] = "xxx";
    $conf['db_type'] = "mysql";

    $con = mysql_connect('xxx', 'xxx', 'xxx') or die (mysql_error());
    $db  = mysql_select_db("aTable", $con);
?>

3
mysql_select_db("aTable", $con); 的意思是选择名为"aTable"的数据库。虽然名称听起来像是一个表名,但实际上它是数据库的名称。 - 0x6A75616E
1
尝试在 select_db() 行上加上 or die (mysql_error());,以查看是否输出任何错误。 - Bojangles
你是否检查了mysql_select_db()的返回值(即$db)是否为FALSE? - ChrisM
@JosephTorraca,你需要授予用户xxx对数据库aTable的访问权限。 - Michael Berkowski
我该怎么做?我对PHP和MySQL还很陌生。 - Joe Torraca
显示剩余3条评论
2个回答

22

我曾经遇到过这个问题,通过在表名前面加上数据库名称解决了它,所以...

 select * from database.table

18

除非您的密码输入错误并需要进行修正,否则请运行GRANT语句以授予数据库用户访问权限:

GRANT ALL PRIVILEGES ON aTable.* TO xxx@localhost IDENTIFIED BY 'password_for_xxx';

以上授予了所有权限。通常情况下,仅限于所需权限会更好。例如,如果您只想SELECT(查询),而不修改数据,则应该:

GRANT SELECT ON aTable.* TO xxx@localhost IDENTIFIED BY 'password_for_xxx';

更新

由于您已经确认数据库名称为dedbmysql,请将您的mysql_select_db()调用更改为:

$db = mysql_select_db("dedbmysql", $con);

接着来看,上面的GRANT语句可能是不必要的,因为你所使用的主机可能已经解决了正确的数据库权限问题。


我刚试着在PHPmyAdmin上运行它,但是它给了我这个错误:#1044 - 用户'xxx'@'%'被拒绝访问数据库'xxx' - Joe Torraca
@JosephTorraca,你的数据库实际名称是什么?aTable显然是表的名称,但数据库必须有不同的名称。 - Michael Berkowski
@JosephTorraca,请查看上面的更改。您需要修复mysql_select_db() - Michael Berkowski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接