【发布时间】:2018-06-08 10:38:35
【问题描述】:
我正在尝试使用 PHP PDO 构建一个简单的博客,但我在验证/if else 上有点卡住了,因为在无类混乱版本中曾经发生的事情是它会说“这篇文章不存在”但现在它只显示带有空框的页面,所以我想知道如何将 if/else 语句添加到类以使其工作并在 id 与数据库中不匹配时显示消息
public function fetch_data($pid){
try{
global $pdo;
$query = $pdo->prepare('SELECT * FROM post where post_id = ? order by post_date desc');
$query->BindValue(1,$pid);
$query->execute();
return $query->fetch();
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
这是公共功能代码,article.php页面代码是:
<?php
include_once('functions/main.php');
$post = new Main;
$check = new Main;
$check_login = $check->logged_in();
if(isset($_GET['id'])){
$pid = $_GET['id'];
$post = $post->fetch_data($pid);
$query = $pdo->prepare("UPDATE post SET post_views = post_views + 1 WHERE post_id = ?");
$query->execute(array($pid));
?>
<html>
<head>
<title><?php echo $post['post_title'];?></title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
.customimage{
background: url('<?php echo $post['post_image'];?>') !important;
}
</style>
</head>
<body>
<div class="pusher">
<!-- Site content !-->
<div class="ui inverted vertical masthead center aligned segment purple customimage">
<div class="ui text">
<h1 class="ui inverted header">
<?php echo $post['post_title'];?></h1>
<br>
<div class="ui black inverted label"> <i class="calendar icon"></i><?php echo $post['post_date'];?></div><div class="ui black inverted label"><i class="user icon"></i> <?php echo $post['post_author'];?></div><div class="ui black inverted label"><i class="unhide icon"></i> <?php echo $post['post_views']?></div>
</div>
</div>
<div class="ui divider hidden"></div>
<div class="ui container">
<div class="ui segments">
<div class="ui segment purple">
<h1 class="ui header">
<div class="content">
<?php echo $post['post_title'];?>
</div>
</h1>
</div>
<div class="ui segment">
<?php echo $post['post_content'];?>
</div>
<div class="ui secondary segment">
<button class="ui labeled icon button">
<i class="left arrow icon"></i>
Return to Posts</button>
</div>
</div>
</div>
</div>
</body>
</html>
<?php
}else{
header('Location:index.php');
}
?>
我不知道如何制作它,所以当您转到 ?id=876799 时,它会说该文章不存在,但目前它只是空白。
【问题讨论】:
-
有问题的 if / else 在哪里?
-
@devlincarnate 我一直在尝试把它们放进去,但我看不到在哪里或如何做,所以我问了专业人士,这样我就可以为未来学习,而且我对 PDO 非常陌生
-
不要那样手工构建 JSON。如果要回显 JSON,请使用
echo json_encode(array('error' => array('text' => $e->getMessage())));
标签: php function class if-statement pdo