Как php выводит на экран + использование mysql для отображения значений на экране? - PullRequest
1 голос
/ 02 июля 2011

Я все еще относительно новичок в 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), но ничего не сделал. Но это никогда не показывает никакого эха во время соединения с БД. У моего БД есть все поля, как и ожидалось. Есть идеи? Спасибо!

Ответы [ 3 ]

1 голос
/ 02 июля 2011

Синтаксис \Wisdom\Question предназначен для пространств имен , а не папок. Вам нужно загрузить файл, содержащий класс, который не может быть выполнен с этим синтаксисом. Используйте что-то простое, например:

require 'Wisdom/Question.php';
new Question;
1 голос
/ 02 июля 2011

Из вашего вопроса нелегко сказать, с какой ошибкой вы сталкиваетесь.Внутренняя ошибка сервера 500 может иметь несколько причин.Это может быть что-то, что беспокоит PHP, но это может быть что-то и с веб-сервером.

Так что лучший ответ, который я могу дать, это то, что вы правильно настроили обработку ошибок PHP / Конфигурация ошибок PHP , а затем проверьте журнал ошибок php.

Параллельно вам нужно также проверить журнал ошибок вашего веб-сервера.

Кроме того, вот некоторые мыслиЯ уже сделал это из-за кода, который вы опубликовали, но это может вводить в заблуждение:

Для того, что вы пытаетесь достичь, нужен автозагрузчик.Похоже, что класс \Wisdom\Question не существует, когда вы пытаетесь создать его экземпляр:

new \Wisdom\Question();

Автозагрузчик необходим для фактической загрузки несуществующих классов из директории / расположения файла, как вы, кажется,используйте (я не могу конкретно сказать, потому что ваш вопрос не дает больше информации).

Для автозагрузчика похоже, что вы можете использовать любой автозагрузчик, совместимый с PSR-0, , например, этот .

Кроме того, для определения класса также необходимо указать правильное Пространство имен сверху:

<?php
namespace Wisdom;
class Question {
0 голосов
/ 02 июля 2011

Ха, только что узнал, что версия php - 5.2, поэтому не будет пространств имен.

Спасибо за все остальные ответы.

...