【问题标题】:How to show Object Data from a Database如何显示数据库中的对象数据
【发布时间】:2011-12-03 00:29:33
【问题描述】:

所以我正在开发涉及利用来自 FB 的用户个人资料数据的应用程序。但并非所有用户都维护相同的数据,因此我使用函数来确定哪些数据丢失,然后向用户请求适当的数据。这些请求来自数据库。该函数的一个基本示例如下所示:

  function getEmploymentInfo () {
        if (isset($this->employer) and (!isset($this->jobtitle))) {
            $id = 1;
        } elseif (!isset($this->employer)) {
            $id = 2;
        }
        echo $this->get_profile($id);
    }

获取配置文件功能如下:

 function get_profile($id) {
$dsn = "mysql:host=localhost;dbname=software";
$username = "root"; // database username
$password = "*******"; // database password
try {
    $enter = new PDO($dsn, $username, $password);
    $sql = "SELECT response FROM getprofile WHERE response_id = ? ";
    $new_item = $enter->prepare($sql);
            $new_item->setFetchmode(PDO::FETCH_ASSOC);
    $new_item->execute(array($id));
    foreach($new_item as $nw) {
        return $nw['response'];
    }
} catch (Exception $e) {
    echo $e->getMessage();
    exit;
}
return "";
    }

来自数据库的 $id=1 看起来像这样:

 <script type="text/javascript">

 function getJobTitle(){
document.getElementById("JobTitle").hidden = true;
document.getElementById("two").hidden = false;

}

 function getStartDate(){
document.getElementById("StartDate").hidden = true;
document.getElementById("three").hidden = false;

}

function getEndDate(){
document.getElementById("EndDate").hidden = true;
document.getElementById("four").hidden = false;

}

<?php
echo "$objUser->employer";
?>
<form action="newprofile.php" method="post">
<p><a id="JobTitle" href="#" onclick="getJobTitle()">Add Job Title</a><input       type="text" name="jobtitle" id="two" hidden="true" value="Add Job Title"></input></p>
<p><a id="StartDate" href="#" onclick="getStartDate()">Add Start Date</a><input    type="text" name="startdate" id="three" hidden="true" value="Add Start Date"></input></p>
<p><a id="EndDate" href="#" onclick="getEndDate()">Add End Date</a><input type="text"   name="enddate" id="four" hidden="true" value="Add End Date"></input></p>
<input type="submit" value="submit"></form>

但是当这段代码从数据库返回到页面时 echo "$objUser->employer";不填充。同时,如果我直接在页面上编写该代码,它就可以工作。什么给了?

【问题讨论】:

    标签: php oop


    【解决方案1】:

    数据库只存储文本,而不是实际实例化的对象。当您存储所有文本时,返回的值无法知道 $objUser 是什么。

    您尝试执行此操作的方式有很多问题,您不应该将所有代码存储在数据库中的每一行。但回答这个问题并为您指明正确方向的最简单方法是,您需要序列化对象以便将它们存储在数据库中,并在将记录从数据库中拉出后取消序列化它们,以便再次使用它们.

    【讨论】:

    • 对象在别处实例化。我只是从数据库中调用它们。
    • 有什么更简单的方法来完成这项工作?
    猜你喜欢
    • 2020-10-14
    • 2016-12-19
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多