当前位置:Gxlcms > PHP教程 > 微信开发php数据库查询,回复信息,无法取得数据?还是格式有误?

微信开发php数据库查询,回复信息,无法取得数据?还是格式有误?

时间:2021-07-01 10:21:17 帮助过:7人阅读

过程是这样的

  1. 解析微信发来的xml,获取用户发送的内容

  2. 根据内容,进行判断回复

  3. 读取数据库内容,作为字符串返回,回复信息

但是好像在数据库操作中出现了问题,怎么都回复不了。其它 case '1' 等等都没问题。

我试图在方法getSql() 中在每一步中添加 echo '成功' 测试,到下面我注释的地方就不再返回,大神们看看怎么回事?

怎么查看支不支持mysqli呢?我是CentOS 6.7 php 5.6 phpinfo() 显示的关于mysqli 的内容如下:

我知道windows上的php里面有个extension 开启就可以了,linux 里面的php配置是什么样的呢?


/*
-------------------------------------
判断信息事件,根据用户发来的信息内容,判断回复
$arr: 解析后的 微信发来的数据
--------------------------------------
*/
    public function rspText($arr){
        switch (trim(strtolower($arr->Content))){
            case '1':{
                $this->replyMsg($arr,"success");
            };break;
            case '2':{
                $this->replyMsg($arr,$this->getSql());
            };break;
            case 'time':{
                $this->replyMsg($arr,date("Y-m-d")."\n".date("H:i:s"));
            };break;
            default: $this->replyMsg($arr,"看海哟");
        }
    }

/*
-----------------------------------
回复信息
$arr : 微信发来的 post 数据解析后的对象
$content: 要回复的内容,字符串
-----------------------------------
*/
    public function replyMsg($arr,$content="")
    {
        $toUser = $arr->ToUserName;
        $fromUser = $arr->FromUserName;
        $time = time();
        $msgType = 'text';
        $rspPatten = '
                    
                    
                    %s
                    
                    
                    ';
        $rspMsg = sprintf($rspPatten, $fromUser, $toUser, $time, $msgType, $content);
        echo $rspMsg;
    }

//读取数据库内容
    public function getSql(){
        $host= "111.111.111.111";
        $port = '1111';
        $database = "wordpress";
        $table = "wp_posts";
        $user = "1111";
        $passwd = "1111";
        $sql = "select post_title from ".$table." limit 1,10";


        //!!!!!!!!!到此处还是可以返回的,下面这句就不再返回了!!!!!!!
        
        
        $link = mysqli_connect($host,$user,$passwd,$database,$port);

        $tempResult = $link->query($sql);
        $str = "";
        while($row = $tempResult->fetch_array()){
            $str = $str.$row['post_title'];
        }
        $link->close();

        return $str; //返回字符串
    }

回复内容:

过程是这样的

  1. 解析微信发来的xml,获取用户发送的内容

  2. 根据内容,进行判断回复

  3. 读取数据库内容,作为字符串返回,回复信息

但是好像在数据库操作中出现了问题,怎么都回复不了。其它 case '1' 等等都没问题。

我试图在方法getSql() 中在每一步中添加 echo '成功' 测试,到下面我注释的地方就不再返回,大神们看看怎么回事?

怎么查看支不支持mysqli呢?我是CentOS 6.7 php 5.6 phpinfo() 显示的关于mysqli 的内容如下:

我知道windows上的php里面有个extension 开启就可以了,linux 里面的php配置是什么样的呢?


/*
-------------------------------------
判断信息事件,根据用户发来的信息内容,判断回复
$arr: 解析后的 微信发来的数据
--------------------------------------
*/
    public function rspText($arr){
        switch (trim(strtolower($arr->Content))){
            case '1':{
                $this->replyMsg($arr,"success");
            };break;
            case '2':{
                $this->replyMsg($arr,$this->getSql());
            };break;
            case 'time':{
                $this->replyMsg($arr,date("Y-m-d")."\n".date("H:i:s"));
            };break;
            default: $this->replyMsg($arr,"看海哟");
        }
    }

/*
-----------------------------------
回复信息
$arr : 微信发来的 post 数据解析后的对象
$content: 要回复的内容,字符串
-----------------------------------
*/
    public function replyMsg($arr,$content="")
    {
        $toUser = $arr->ToUserName;
        $fromUser = $arr->FromUserName;
        $time = time();
        $msgType = 'text';
        $rspPatten = '
                    
                    
                    %s
                    
                    
                    ';
        $rspMsg = sprintf($rspPatten, $fromUser, $toUser, $time, $msgType, $content);
        echo $rspMsg;
    }

//读取数据库内容
    public function getSql(){
        $host= "111.111.111.111";
        $port = '1111';
        $database = "wordpress";
        $table = "wp_posts";
        $user = "1111";
        $passwd = "1111";
        $sql = "select post_title from ".$table." limit 1,10";


        //!!!!!!!!!到此处还是可以返回的,下面这句就不再返回了!!!!!!!
        
        
        $link = mysqli_connect($host,$user,$passwd,$database,$port);

        $tempResult = $link->query($sql);
        $str = "";
        while($row = $tempResult->fetch_array()){
            $str = $str.$row['post_title'];
        }
        $link->close();

        return $str; //返回字符串
    }

数据库这部分每一行都没错,放到一起就错了。
前面是连接是面向过程的方法mysqli_connect
后面查询和取值是面向对象的方法

mysqli_connect换成new mysqli

试着用mysql_connect(),mysql_select_db()和mysql_query()处理

人气教程排行