我创建了一组帮助器函数,以简化在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
)
)
响应中有一个奇怪的附加索引,表示“结果”。关于什么可能导致这种情况的任何想法?