所以我正在开发涉及利用FB用户个人资料数据的app。但并非所有用户都保持相同的数据,因此我使用函数来确定缺少哪些数据,然后从用户请求相应的数据。这些请求来自数据库。该函数的基本示例如下所示:
function getEmploymentInfo () {
if (isset($this->employer) and (!isset($this->jobtitle))) {
$id = 1;
} elseif (!isset($this->employer)) {
$id = 2;
}
echo $this->get_profile($id);
}
get profile函数如下所示:
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-&gt;雇主”时;没有填充。同时如果我直接在页面上编写代码就可以了。是什么给了什么?
答案 0 :(得分:1)
数据库只存储文本,而不是实际的实例化对象。当您存储所有文本时,返回的值无法知道$ objUser是什么。
您尝试执行此操作的方式存在很多问题,您不应该将所有代码存储在数据库中的每一行。但是回答这个并指出正确方向的最简单的方法是,您需要序列化对象以便将它们存储在数据库中,并在将记录拉出数据库后对它们进行反序列化,以便再次使用它们