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

WBOY
Freigeben: 2016-10-23 00:12:51
Original
920 Leute haben es durchsucht

过程是这样的

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

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

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

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

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

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

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

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

<code class="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 = '<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    <content></content>
                    </xml>';
        $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; //返回字符串
    }</code>
Nach dem Login kopieren
Nach dem Login kopieren

回复内容:

过程是这样的

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

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

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

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

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

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

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

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

<code class="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 = '<xml>
                    <tousername></tousername>
                    <fromusername></fromusername>
                    <createtime>%s</createtime>
                    <msgtype></msgtype>
                    <content></content>
                    </xml>';
        $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; //返回字符串
    }</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

mysqli_connect换成new mysqli

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!