【发布时间】:2014-07-07 15:14:16
【问题描述】:
我已经坚持了两天了。我建立了自己的博客,帖子存储在数据库中。此页面用于根据其 ID 抓取旧帖子。当我试图找回它们时,除了实际的身体外,一切都显示出来了。
这是 /posts/ 中的索引
<?php
include_once('grabPost.php');
$TEMPLATE_TITLE = "$POST_TITLE";
include_once("../inc/template.html");
?>
然后,这是grabPost.php。
<?php
error_reporting(-1);
$ID = $_GET['id'];
include_once('connectionMod.php');
$DBConnection = new MySQLi($DB_HOST, $DB_USER, $DB_PASS, $DB_DTBS);
function ReturnError($error){
global $POST_TITLE;
global $POST_BODY;
global $TEMPLATE_CONTENT;
$POST_TITLE="Oops!";
$POST_BODY="<p>It looks like we had an error grabbing your post. The post may have been moved, deleted, or you may have an invalid link. If you <strong>know</strong> this shouldn't be happening, please contact a developer.<br><em>$error</em></p>";
$TEMPLATE_CONTENT = "<h1>$POST_TITLE</h1>\n<hr size='2'>\n$POST_BODY";
}
if($ID == null){
ReturnError("No post ID was provided.");
}
if($stmt = $DBConnection->prepare("SELECT `Title`, `Poster`, `Date`, `Body` FROM `posts` WHERE `ID`=?")){
if(!($stmt->bind_param('i', $ID))){
ReturnError($stmt->error);
}
else if(!($stmt->execute())){
ReturnError($stmt->error);
}
else if(!($stmt->bind_result($POST_TITLE, $POST_NAME, $POST_DATE, $POST_BODY))){
ReturnError($stmt->error);
}
else if(!($stmt->fetch())){
ReturnError($stmt->error);
}
else{
$TEMPLATE_CONTENT = "<h1>$POST_TITLE</h1>\n<small>Posted on $POST_DATE by $POST_NAME</small>\n<hr size='2'>\n$POST_BODY";
}
}
else{
ReturnError($DBConnection->error);
}
?>
但奇怪的是,您可以在主页上毫无问题地看到最新的帖子。有什么问题有什么建议吗? 此外, ReturnError() 永远不会显示错误。我该怎么办?
【问题讨论】:
-
pur
error_reporting(E_ALL);检查是否有任何错误 -
我已经有了-1,但没有区别。没有出现任何错误。
-
如果没有 return 或 echo 语句,您希望 ReturnError() 做什么...?
-
$POST_BODY 包含错误。如果失败,仍然会显示一个网页,上面写着“糟糕!”并应与错误一起提供信息。当我确实 die() 时它起作用了,但我显然不希望那样。
标签: php mysqli prepared-statement blogs