我对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,所以没有名称空间。
谢谢所有其他的答案。