stdClass对象在实时站点上有奇怪的怪癖,但在本地计算机上却没有

时间:2018-12-30 03:00:56

标签: php object coercion

我创建了一组帮助器函数,以简化在php中进行数据库操作时的生活。本质上,我将函数传递给stdClass对象,然后将它们用于执行操作(删除,添加等)或检索信息。除了用来删除数据库条目的辅助功能外,它们似乎按预期工作。让我感到沮丧的是,它在运行WAMP的本地计算机上运行正常,但是当我将其投入使用时,它拒绝删除数据库条目。

我认为我已经将问题缩小到一个奇怪的怪癖,我无法解释WAMP和我的现场站点之间的stdClass对象的输出。

PHP:

<?php   
        session_start();
        require_once('dbconnect.php');
        require_once('dbhelpers.php');

        $cat = $_GET['cat'];
        $id = $_GET['id'];

        //remove row from table
        $a_remove = (object) array(
            "table" => "{$cat}",
            "columns" => (object) array(
                "`id`"
            ),
            "results" => (object) array(
                    "{$id}"
            ),
            "type" => (object) array(
                "i"
            )
        );
        removeRow($a_remove);
    ?>

当我在$ a_remove对象上运行print_r时,这是WAMP响应的输出:

stdClass Object
(
    [table] => subjects
    [columns] => stdClass Object
        (
            [0] => `id`
        )

    [results] => stdClass Object
        (
            [0] => 36
        )

    [type] => stdClass Object
        (
            [0] => i
        )
)

但是,当我在实时站点上的$ a_remove上执行print_r时,会得到以下信息:

stdClass Object
(
[table] => subjects
[columns] => stdClass Object
    (
        [0] => `id`
    )

[results] => stdClass Object
    (
        [0] => 36
        [0] =>
    )

[type] => stdClass Object
    (
        [0] => i
    )
)

响应中有一个奇怪的附加索引,表示“结果”。关于什么可能导致这种情况的任何想法?

0 个答案:

没有答案