php如何输出到screen+使用mysql在屏幕上显示值


How does php output to screen + using mysql to show values on screen?

我对php还是比较陌生的。

我在我的webroot下面创建了一个名为lib的子文件夹,并添加了test.php

然后我添加了以下代码。。。

<?php
new 'Wisdom'Question();
?>

然后,我在lib中创建了另一个名为"Wisdom"的文件夹和一个名"Question"的类,代码如下。。。

<?php
class Question {
function __construct()
{
    $user="username";
    $password="password";
    $database="dbname";
    mysql_connect(localhost,$user,$password);
    @mysql_select_db($database) or die( "Unable to select database");
    $query = "SELECT * FROM questions";
    $result = mysql_query($query);
    $num = mysql_numrows($result);
    mysql_close();
    echo "<b><center>Database Output</center></b><br><br>";
    $i=0;
    while($i < $num)
    {
        $description = 'mysql_result($result,$i, "description");
        $id = 'mysql_result($result,$i, "id");
        echo "<b>$id $description</b>";
        $i++;
    }
}

}

当我在浏览器中查看test.php时,它只显示一个错误500(另一个注意事项是,我如何在屏幕上显示php错误?我尝试了error_REPORTING(E_ALL(,但它什么都没做。但在数据库连接过程中,它从未显示出任何回声。我的数据库具有预期的所有字段。有什么想法吗?非常感谢。

从你的问题中很难说出你面临的是什么样的错误。500内部服务器错误可能有多种原因。这可能是PHP关心的问题,但也可能是Web服务器关心的问题。

因此,我能给出的最好答案是,正确配置PHP错误处理/PHP错误配置,然后检查PHP错误日志。

同时,您还需要检查Web服务器的错误日志。

除此之外,由于你发布的代码,我已经有了一些想法,但这可能会产生误导:

您试图实现的目标需要启用自动加载器。当您尝试实例化类'Wisdom'Question时,它似乎不存在:

new 'Wisdom'Question();

自动加载器是从你似乎使用的目录/文件布局中实际加载不存在的类所必需的(我不能具体说,因为你的问题没有提供更多信息(。

对于自动加载器,您似乎可以使用任何与PSR-0兼容的自动加载器,例如这个。

除此之外,类定义还需要顶部正确的命名空间

<?php
namespace Wisdom;
class Question {

'Wisdom'Question语法用于命名空间,而不是文件夹。您需要加载包含该类的文件,而使用该语法是无法完成的。使用一些简单的东西,比如:

require 'Wisdom/Question.php';
new Question;

哈哈,刚刚发现php版本是5.2,所以没有名称空间。

谢谢所有其他的答案。