这对我来说有点奇怪。 PHP 是我的强项,遇到任何问题我都能正常解决。
我有一个我已经使用多年的自定义框架。我已经承担起重写它的责任,并且我所做的一切与以前基本相同。问题在于以下构造:
function ModPages_GetPage() {
$page = ModPages_GetPageByName($_GET['page_name']);
if($page != false) {
include(TPL_DIR.'pages/pages.view.php');
} else {
ErrorMessage('Invalid Page', 'The selected page could not be found.');
}
}
function ModPages_GetPageByName($page_name = null) {
$db = new Database;
$query = '
SELECT *
FROM pages
WHERE page_name = "'.CleanStr($page_name).'"
AND page_enabled = "yes"
LIMIT 1
';
$page = $db->GetRow($query);
return $page;
}
此代码正在使用“home”调用,用于获取 $_GET['page_name']
的值。对 ModPages_GetPageByName()
的调用工作正常,但 ModPages_GetPage()
中的 $page
的值未设置。事实上,在该调用之后抛出的任何调试语句都无法显示任何内容。
我将 display_errors
设置为 on
,并将 error_reporting
设置为 E_ALL
。我从我的数据库类中收到了一些通知,仅此而已。
在 shell 中运行脚本不会产生任何错误。使用 strace
时,我确实看到进程吐出一个“exit_group(255)”。
这个让我很困惑。我肯定可以在这方面使用一些指导。
最佳答案
我认为这是您的查询,您不应该只返回页面名称而不是星号吗?因为星号 (*) 会返回一个可能作为值传回的数组?只是我的猜测。
$query = '
SELECT *
FROM pages
WHERE page_name = "'.CleanStr($page_name).'"
AND page_enabled = "yes"
LIMIT 1
';
如果你在 $page 返回上做一个 print_r 我认为它应该是一个数组
$page = $db->GetRow($query);
echo "Page:<pre>".print_r($page,true)."</pre><br />\n";
然后也许返回这样的东西
return $page['page_name_field'];
关于PHP 函数 'return' 未返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3860477/