【问题标题】:Cant fetch post from SQL Database无法从 SQL 数据库中获取帖子
【发布时间】:2016-02-20 01:53:05
【问题描述】:

您好,我正在尝试从我的 sql 中获取数据,其中 id、post_author、post_date、post_content、post_title 和 post_status

现在我对 post.php 的基础是这样的

<?php require_once("../../includes/session.php"); ?>
<?php require_once("../../includes/db_connection.php"); ?>
<?php require_once("../../includes/functions.php"); ?>
<?php
$post = "";
$id = 1;
// ^'will be using $_GET['id'] to get current post
find_post_by_id($id, $public=true);
?>
<?php include("../../includes/layouts/header.php") ?>

<div class="container post">
    <h1><?php echo htmlentities($post["post_title"]); ?></h1>
    <p>Auther & postdate n time</p>
    <hr class="hrpost">
    <div class="content">
        Content in form of the text
    </div>
</div>

<?php include("../../includes/layouts/footer.php") ?>

在functions.php中我有这个

function confirm_query($result_set) {
    if (!$result_set) {
        die("Database query failed.");
    }
}

function find_post_by_id($post_id, $public=true) {
    global $connection;

    $safe_page_id = mysqli_real_escape_string($connection, $post_id);

    $query  = "SELECT * ";
    $query .= "FROM posts ";
    $query .= "WHERE id = {$safe_page_id} ";
    if ($public) {
        $query .= "AND post_status = \"publish\" ";
    }
    $query .= "LIMIT 1";
    $post_set = mysqli_query($connection, $query);
    confirm_query($post_set);
    if($post = mysqli_fetch_assoc($post_set)) {
        return $post;
    } else {
        return null;
    }
}

然后当我试图理解它的时候->

警告:D 行 13 中的非法字符串偏移 'post_title'。

为什么要这样做以及如何解决它???

【问题讨论】:

  • $post 似乎不是一个数组,可以返回 null。试试 var_dump($post);
  • 抱歉,我编辑了 mysqli_fetch_assoc,我编辑了@Ekin :) 如果它在你放的地方

标签: php html sql


【解决方案1】:

这可能就是你要找的东西。

$post = find_post_by_id($id, $public=true);

如果查询没有返回您需要的内容,请确保您打印或记录查询。然后在你的 mysql 控制台上运行该查询以仔细检查它实际上返回了一些东西。

【讨论】:

  • 老兄谢谢!它返回 TEST :) 作为帖子标题非常感谢@timhysniu
猜你喜欢
  • 2017-07-05
  • 2017-06-09
  • 2015-01-31
  • 2014-11-13
  • 2018-07-26
  • 2021-04-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
相关资源
最近更新 更多