【问题标题】:error: No database selected when displaying data on website错误:在网站上显示数据时未选择数据库
【发布时间】:2015-03-18 20:09:57
【问题描述】:

我的名字是 Anna,我正在建立一个带有节日日历的网站!人们可以在登录时添加节日。但现在是我的问题,我如何才能显示人们在我的数据库中输入的内容。我在这个网站上找到了以下代码,但是当我把它放在我的脚本中时,我得到了没有选择数据库的错误。但我确实选择了一个数据库(节日)?

            $sql = "SELECT festival_name, festival_organisator, festival_begin FROM Festivals WHERE festival_id=3";
            $result = mysql_query($sql) or die(mysql_error());

            $festival_name = $festival_organisator = $festival_begin = array();

            while($row = mysql_fetch_assoc($result)) {
                $festival_name[] = $row['festival_name'];
                $festival_organisator[] = $row['festival_organisator'];
                $festival_begin[] = $row['festival_begin'];
            }

我希望有人可以帮助我!在此先感谢

【问题讨论】:

  • 拜托,stop using mysql_* functions。 它们不再维护,而是 officially deprecated。 了解prepared statements,然后使用PDO。
  • 你是如何插入节日的?选择它们的代码应该没有那么不同,所以不需要从其他网站复制你不知道的东西。
  • 这是一个学校作业,所以我们不允许复制数据,您的用户必须添加信息
  • 是的,使用 mysqli 或 pdo...但是您忘记连接到数据库...如果您必须使用 mysql -> 1) SMACK 你的老师 2) 然后在查询之前使用 mysql_connect 跨度>
  • 数据库和表是有区别的。您从一个名为 Festivals 的表中进行选择,但在您的连接语句中,您选择了数据库。你能告诉我们你是如何连接到数据库的吗?请不要使用 mysql_...

标签: php mysql


【解决方案1】:

你还没有连接到数据库本身

查询选择 表 Festivals 并不意味着您已经选择 Festivals 数据库,这是两个截然不同的东西。

  • 数据库 Festivals 包含所有表(表 Festivals、表 x 等)。
  • Festivals 表包含您可以查询的数据(festival_name、festival_organisator 等)。

现在你必须连接

看看documentation总是一个不错的选择,让我们看看如何连接和选择数据库:

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}
?>

您应该已连接到数据库,可以通过$link 访问选定的数据库。

mysql_query($sql, $link)

但不要这样做!

除非你必须,但可爱的小狗会死:(

你不应该首先使用mysql_*,因为它不再受支持。相反,您应该使用PDO 或mysqli 来完成您的任务。一开始可能听起来或看起来更棘手,但实际上相当简单:

【讨论】:

  • 我相信这是关键:$db_selected = mysql_select_db('foo', $link);
  • @SimonShirley 是的,但是您需要使用mysql_connect 来获取$link 才能连接,并且$link 用于查询,即使已选择数据库。
  • 嘿嘿,我们不想让小狗死去!我要试试pdo,非常感谢(:
  • @AnnaTol 不客气! :) 如果您有权这样做,请随时支持我的答案,如果您满意,请勾选复选标记将其标记为已接受的答案:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
  • 2015-05-21
相关资源
最近更新 更多