WeChat은 PHP 데이터베이스 쿼리를 개발하고 정보에 응답하지만 데이터를 얻을 수 없습니까? 아니면 형식이 잘못된 걸까요?

WBOY
풀어 주다: 2016-10-23 00:12:51
원래의
921명이 탐색했습니다.

과정은 이렇습니다

  1. WeChat에서 보낸 xml을 구문 분석하고 사용자가 보낸 콘텐츠 가져오기

  2. 내용을 바탕으로 답변

  3. 데이터베이스 내용을 읽고 문자열로 반환하고 정보를 회신합니다

그런데 데이터베이스 운영에 문제가 있는 것 같아 답변을 드릴 수 없습니다. 그 외 case '1' 등은 괜찮습니다.

getSql() 메서드의 각 단계에 echo '成功' 테스트를 추가하려고 했습니다. 아래에 댓글을 달았던 곳으로 돌아가지 않겠습니다. 무슨 일이 일어나고 있는지 알려주실 수 있나요?

mysqli 지원 여부는 어떻게 확인하나요? 저는 CentOS 6.7 php 5.6 phpinfo() mysqli에 대해 표시되는 내용은 다음과 같습니다.

Windows의 PHP에는 활성화할 수 있는 확장 기능이 있다는 것을 알고 있습니다. Linux의 PHP 구성은 어떤가요?

WeChat은 PHP 데이터베이스 쿼리를 개발하고 정보에 응답하지만 데이터를 얻을 수 없습니까? 아니면 형식이 잘못된 걸까요?
WeChat은 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><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[%s]]></MsgType>
                    <Content><![CDATA[%s]]></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>
로그인 후 복사
로그인 후 복사

답글 내용:

과정은 이렇습니다

  1. WeChat에서 보낸 xml을 구문 분석하고 사용자가 보낸 콘텐츠 가져오기

  2. 내용을 바탕으로 답변

  3. 데이터베이스 내용을 읽고 문자열로 반환하고 정보를 회신합니다

그런데 데이터베이스 운영에 문제가 있는 것 같아 답변을 드릴 수 없습니다. 그 외 case '1' 등은 문제 없습니다.

getSql() 메서드의 각 단계에 echo '成功' 테스트를 추가하려고 했습니다. 아래에 댓글을 달았던 곳으로 돌아가지 않겠습니다. 무슨 일이 일어나고 있는지 알려주실 수 있나요?

mysqli 지원 여부는 어떻게 확인하나요? 저는 CentOS 6.7 php 5.6 phpinfo() mysqli에 대해 표시되는 내용은 다음과 같습니다.

Windows의 PHP에는 활성화할 수 있는 확장 기능이 있다는 것을 알고 있습니다. Linux의 PHP 구성은 무엇입니까?

WeChat은 PHP 데이터베이스 쿼리를 개발하고 정보에 응답하지만 데이터를 얻을 수 없습니까? 아니면 형식이 잘못된 걸까요?
WeChat은 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><![CDATA[%s]]></ToUserName>
                    <FromUserName><![CDATA[%s]]></FromUserName>
                    <CreateTime>%s</CreateTime>
                    <MsgType><![CDATA[%s]]></MsgType>
                    <Content><![CDATA[%s]]></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>
로그인 후 복사
로그인 후 복사

데이터베이스의 이 부분에 있는 모든 행은 정확하지만 종합해 보면 잘못된 것입니다.
앞의 연결은 프로세스 중심의 방식mysqli_connect
뒤의 질의와 값 검색은 객체 지향의 방식

mysqli_connectnew mysqli

으로 바꾸겠습니다.

mysql_connect(), mysql_select_db() 및 mysql_query()를 사용해 보세요

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!