0

所以我以为我把这件事搞砸了,它确保让我知道我又搞砸了。

<?php
        $username="root";
        $password="**********";
        $database="website";
        $server="localhost";
        $connect=mysql_connect($server,$username,$password);
        ;
        @mysql_select_db($database) or die( "Unable to select database");
        mysql_select_db($database, $connect) or die ("Error selecting specified database on this server: ".mysql_error());
        $cdquery="SELECT content FROM homepage";
        $cdresult=mysql_query($cdquery) or die ("Query to get data from the first table failed: ".mysql_error());
        echo "<p>$cdresult</p>";

        mysql_close();
        ?>

是我目前拥有的代码来显示来自我的表格网站和列数据的信息。我不确定 Resource id #4 是什么,但它显示的是自身而不是内容。有人知道我做错了什么,因此它不会显示我在内容中拥有的信息吗?

4

1 回答 1

2

您需要通过mysql_fetch_assoc(). 查询成功后返回结果资源,数据库连接使用该资源来后台处理结果。在获取行之前,它本身不包含行数据:

$cdresult = mysql_query($cdquery) or die ("Query to get data from the first table failed: ".mysql_error());
while ($row = mysql_fetch_array($cdresult)) {
  // The column is an array key in $row
  // Wrapped in htmlspecialchars() to escape for HTML output
  echo "<p>" . htmlspecialchars($row['cdresult']) . "</p>";
}

mysql_*()函数已开始弃用,最终将从 PHP 中删除。建议您花一些时间学习支持准备好的语句的更现代的 API 之一,例如 MySQLi 或 PDO,而不是花太多时间学习这些mysql_*()函数。

还有一些提示:

您有两次调用mysql_select_db(). 你只需要其中之一。避免使用@错误抑制运算符,因为它隐藏了您在开发代码时需要能够看到的错误信息。

// Don't do this. Just do the next one
// @mysql_select_db($database) or die( "Unable to select database");
mysql_select_db($database, $connect) or die ("Error selecting specified database on this server: ".mysql_error());
于 2012-07-15T01:53:01.047 回答