0

我对 PHP 比较陌生并且取得了一些不错的成功,但是我遇到了这个问题:

如果我尝试创建 GenericEntryVO 类的新实例,我会收到 500 错误,几乎没有有用的错误信息。但是,如果我使用通用对象作为结果,则不会出现错误。我希望能够将此对象转换为 GenericEntryVO,因为我正在使用 AMFPHP 与 Flex 客户端通信序列化数据。

我已经阅读了几种在 PHP 中创建构造函数的不同方法,但是对于 PHP 5.4.4,建议使用类 Foo 的典型“公共函数 Foo()”

//in my EntryService.php class
public function getEntryByID($id)
{
    $link = mysqli_connect("localhost", "root", "root", "BabyTrackingAppDB");

    if (mysqli_connect_errno())
    {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }

    $query = "SELECT * FROM Entries WHERE id = '$id' LIMIT 1";

    if ($result = mysqli_query($link, $query))
    {
        // $entry = new GenericEntryVO(); this is where the problem lies!

        while ($row = mysqli_fetch_row($result))
        {
            $entry->id = $row[0];
            $entry->entryType = $row[1];
            $entry->title = $row[2];
            $entry->description = $row[3];
            $entry->value = $row[4];
            $entry->created = $row[5];
            $entry->updated = $row[6];
        }
    }

    mysqli_free_result($result);
    mysqli_close($link);

    return $entry;
}

//my GenericEntryVO.php class 
<?php

class GenericEntryVO
{
    public function __construct()
    {
    }

    public $id; 
    public $title;
    public $entryType;
    public $description;
    public $value;


    public $created;
    public $updated;

    // public $properties;
}

?>
4

1 回答 1

0

再次感谢@eis 的领导。我没有意识到您可以访问 PHP 中的错误日志。作为 as3/Flex 开发人员,我习惯于使用带断点的调试器。不确定 PHP 开发人员是否有类似 Flash Builder 的 IDE。

在看到通用 500 错误是找到正确的类来实例化的问题后,我自己做了一些调查。我需要输入 require_once realpath(dirname( FILE ).'/vo/GenericEntryVO.php'); 在班级的顶部。我使用 as3 语法并期望文件路径相对于正在处理的当前文件。这是我找到此解决方案的地方:

如何格式化 PHP include() 绝对(而不是相对)路径?这是关于一个名为@Zoredache 的人发表的第 4 或第 5 条评论

我不确定这是否是最好的解决方案,但它让我重新启动并运行,我的数据对象被序列化以在 Flex 中使用。

于 2012-11-13T15:23:54.630 回答