一个将数据库结果集转换为JSON编码的方法

来自http://tunps.com/convert-db-result-set-to-json

代码片段
public function getSentBox($empId)
{
    $sql=sprintf("select * from %smail_status ms left join  %smail m on ms.mailid=m.mailid and fromid=%s",SQLPREFIX,SQLPREFIX,$empId);
    $stmt=$this->db->query($sql);
    $rows=array();
    while(($r=$this->db->fetch_assoc($stmt)) == true){
        $rows[]=$r;
    }
    return json_encode($rows);
}
开始傻傻的想通过每行数据利用字符拼凑起来,但是方法繁琐。 在SO上发现此奇技淫巧,将结果集先转换成二维数组,然后json_encode之。 返回合法json数据:
[{"MAILID":"1","FROMID":"1","FROMSTATUS":"sent","FROMNAME":"\u7ba1\u7406\u5458","TOID":"2","TOSTATUS":"unread","TONAME":"\u5f20\u4e09","SENDTIME":"2010-05-07","MAILTITLE":"\u6807\u9898","MAILCONTENT":"\u5185\u5bb9"},{"MAILID":"1","FROMID":"1","FROMSTATUS":"sent","FROMNAME":"\u7ba1\u7406\u5458","TOID":"2","TOSTATUS":"read","TONAME":"\u5f20\u4e09","SENDTIME":"2010-05-07","MAILTITLE":"\u6807\u9898","MAILCONTENT":"\u5185\u5bb9"}]

About tunpishuang

just 4 fun·····
This entry was posted in 未分类 and tagged . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>