接上文,现在我们上 MySQL !

数据库结构

wx_2

核心 PHP 代码

//接收文本消息
private function receiveText($object)
{
    $link = mysql_connect("XXX.aliyuncs.com","数据库用户名","密码");
    mysql_select_db("数据库库名?", $link); //原教程里没这句,被坑N久,数据库小白,别笑。
    mysql_set_charset("utf8");
 
    $keyword = $object->Content; //获取用户输入的内容
    $rs = mysql_query("SELECT * FROM wx_lmm WHERE keywords='$keyword'"); //查询内容,其中 wx_lmm 是数据库表头
    $info = mysql_fetch_array($rs);
 
 
    if(!$rs){
        $content = "查询失败!";
    }else{
        $type = $info[type]; //回复消息类型
        $contentStr = $info[content]; 
        $Title = $info[title];
        $Description = $info[description];//单图文消息
        $PicUrl = $info[picurl];
        $Url = $info[url];
        $MusicUrl = $info[musicurl];
        $HQMusicUrl = $info[hqmusicurl];
 
        switch ($type)  //这里我设置一列为type,借以区分回复消息的类型
        {
            case "text": //匹配数据库中 type 为 text ,然后回复相应 content 内的内容。
                $content = $contentStr;
            break;
            case "news": //单图文
                $content = array();
                $content[] = array("Title"=>$Title,"Description"=>$Description,"PicUrl"=>$PicUrl,"Url" =>$Url);
                break;
            case "dnews": //多图文,一个关键词,返回多条图文
                $content = array();
                do {
                $content[]=array("Title"=>$info[title],"Description"=>$info[description],"PicUrl"=>$info[picurl],"Url" =>$info[url]);
                }
                while(
                    $info=mysql_fetch_array($rs)
                );
                break;
            default:
                $content = "未查询到。";
                break;
        }
 
        mysql_close($link);
 
    }
 
    //如果发过来的是图片链接或音乐链接。。。
    if(is_array($content)){
        if (isset($content[0]['PicUrl'])){
            $result = $this->transmitNews($object, $content);
        }else if (isset($content['MusicUrl'])){
            $result = $this->transmitMusic($object, $content);
        }
    }else{
        $result = $this->transmitText($object, $content);
    }
    return $result;
}

对应数据库内容

wx_4

wx_3

dnews 是多图文,匹配关键词返回的是 title picurl url,其中 url 是图文点开的链接。

O 了,也没想像得那么 lan 嘛,哈哈,还是得感谢以下教程:http://blog.csdn.net/afanxingzhou/article/details/43917033