2017-03-27 18 views
0

之后有文本“1”。对不起,以前我的英文不好。我想问为什么在从我的数据库反序列化后,数组后有一个文本“1”。看看图片查看详细:为什么在反序列化之后,在数组

my database (the data is serialized)

output of after unserialize

<div class="form-group"> 
                 <label class="control-label col-md-3">Dokumen Pendukung:</label> 
                 <div class="col-md-4"> 
                  <p class="form-control-static"> <?php echo print_r(unserialize($supportDocument)); ?> </p> 
                 </div> 
                </div> 

我必须尝试,并检查我的代码,有没有可疑代码。请帮助我..谢谢。

public function addProposal($DocumentSupport) { 
    try { 

     $stmt = $this->connect->prepare("INSERT INTO tbl_proposal(supportDocument)VALUES(:supportDocument)"); 



     $stmt->bindParam(":supportDocument", serialize($DocumentSupport)); 


     $stmt->execute(); 
     return $stmt; 

    } catch (PDOException $e) { 
     echo "Error " . $e->getMessage(); 
    } 
} 
+3

代码请 –

+0

欢迎来到堆栈溢出。请始终提供源代码,错误消息和其他文本信息作为内联纯文本而不是外部图片。文本是可搜索的,可重复使用,通常更易于阅读。 –

+0

你需要发布你的代码,如果我们任何人都可以帮助你...... – Stuart

回答

3

要打印的print_r()返回值:

echo print_r(unserialize($supportDocument)); 

和,如记录,它返回true

return参数TRUE,这个函数会返回一个串。否则,返回值是TRUE

...,当converted to string,打印为1

一个布尔TRUE值被转换成字符串"1"。布尔FALSE是 转换为""(空字符串)。这允许在布尔值和字符串值之间进行转换并返回 。

你应该摆脱echo的:

print_r(unserialize($supportDocument)); 

您还可以切换到var_dump(),产生输出更精确(例如,它不会布尔值转换为空字符串):

var_dump(unserialize($supportDocument)); 
+0

非常感谢!我只是从代码中删除“回声”。 –

相关问题