即使选择了数据库,仍然出现“未选择数据库”错误

5

我已选择了数据库,但出于某种奇怪的原因,它仍然显示未选择。

连接行:

$location = "localhost";
$user = "user";
$pass = "pass";

//Database Selection
$link = mysql_connect($location, $user, $pass); 
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
//Database Selection
mysql_select_db('database') or die(mysql_error());

查询语句:
while ($row_fpages = mysql_fetch_array($result_fanpage))
{
    if ( $row_fpages['client'] == NULL ) {

    //GRAPHS
    $sql = "SELECT date, likes FROM statistics_pages WHERE idnum='".$_COOKIE['id']."' AND page_name = ".$row_fpages['page_name']." LIMIT 7";
    $result_apps = mysql_query($sql) or die(mysql_error());

错误信息是:No database selected

我之前从未遇到过这个错误,尝试了很多方法但都没有解决问题。


如果您的mysql_query命令在调用mysql_connect或mysql_selectdb命令之前执行,则也可能会发生这种情况。 - TheTechGuy
6个回答

7
您忘记将变量$link作为链接参数传递。
     mysql_select_db('database', $link) or die(mysql_error());

编辑: 尝试在FROM参数中传递数据库

     SELECT * FROM `database`.`table`

不必要的。如果没有指定链接,将假定使用上次打开的链接。http://php.net/manual/en/function.mysql-select-db.php - Marcus
哦,是吗?不知道呢……这是真的。谢谢你提供的信息! - David Bélanger
我认为Marcus是正确的,但我还是决定去检查一下,结果并没有帮助。 - Ricardo
SELECT 命令被拒绝,用户 ''@'localhost' 对表 'statistics_pages' 没有权限。看起来它严重地不认识连接线路... - Ricardo
至少我们知道问题不在数据库,而是整个链接上。你说你以前做过这个,试着复制你旧的代码,粘贴到需要的地方并编辑凭据。 - David Bélanger
显示剩余3条评论

3

这个错误出现的另一个原因是您使用来访问数据库的用户名和密码可能没有适当的读写权限。 特别是在共享托管服务器上,您需要将相应的用户名分配给相应的数据库。 最近我遇到了这个问题,我创建了一个新的数据库,并忘记为我的现有用户名分配权限。


2
也许是你选择的数据库在mysql中的用户权限问题?

1

请检查是否已将用户添加到数据库并赋予适当的权限。


0
已解决 在MYSQL保留字中使用 ` 反引号... 你的表名是MYSQL的保留字... 请更改你的表名。

0

确保您的代码未插入到类和其他内容中,如果它只是按原样呈现,则可能“数据库”无效,请仔细检查您的值并尝试将其作为外部变量。


数据库是有效的,而且我甚至在我的代码中没有使用类.. :\ - Ricardo

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