选择新闻时出错:未选择数据库


Error selecting news: No database selected

你好,我是php的新用户,我正试图在我的网站上制作一个新闻插件。但我有以下错误,我无法修复。

            $query = "SELECT `id` , `headline`, `timestamp` FROM `news` ORDER BY `timestamp` DESC";
        $result = @mysql_query($query);
        if(!$result){
           echo('Error selecting news: ' . mysql_error());
           exit();
        }
        if (mysql_num_rows($result) > 0)
        {
            while($row = mysql_fetch_object($result)) 
            {
            ?>
            <font size="-1"><b><? echo $row[headling]; ?></b> <i><? echo formatDate($row[timestamp]); ?></i></font><?
            }
        }
        mysql_close($conn);
        ?>

我一次又一次地犯同样的错误。

Error: Error selecting news: No database selected

您需要选择一个数据库。请参阅mysql_select_dbhttp://php.net/manual/de/function.mysql-select-db.php

<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
  die('Connection failed : ' . mysql_error());
}
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
   die ('Db does not exist : ' . mysql_error());
}
?>

还要注意,mysql_*已弃用。使用新的php样式,如http://php.net/manual/de/mysqli.select-db.php

本例中的数据库是"测试"

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s'n", mysqli_connect_error());
    exit();
}
/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.'n", $row[0]);
    $result->close();
}
/* change db to world db */
$mysqli->select_db("world");
/* return name of current default database */
if ($result = $mysqli->query("SELECT DATABASE()")) {
    $row = $result->fetch_row();
    printf("Default database is %s.'n", $row[0]);
    $result->close();
}
$mysqli->close();
?>

我猜您需要在语句中指定要查询的数据库。

select a.id , a.headline, a.timestamp 
from database.news a 
order by a.timestamp desc

将上面的"数据库"替换为您的名称。