欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-17 16:59:06
...

过程是这样的

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

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

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

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

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

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

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

微信开发  php 数据库查询,回复信息,无法取得数据?还是格式有误?
微信开发  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配置是什么样的呢?

微信开发  php 数据库查询,回复信息,无法取得数据?还是格式有误?
微信开发  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()处理

相关标签: php 微信开发