Heim > Backend-Entwicklung > PHP-Tutorial > WeChat entwickelt PHP-Datenbankabfragen, antwortet auf Informationen, kann aber keine Daten abrufen? Oder ist das Format falsch?

WeChat entwickelt PHP-Datenbankabfragen, antwortet auf Informationen, kann aber keine Daten abrufen? Oder ist das Format falsch?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-10-23 00:12:51
Original
983 Leute haben es durchsucht

Der Prozess ist so

  1. Parsen Sie die von WeChat gesendete XML-Datei und erhalten Sie den vom Benutzer gesendeten Inhalt

  2. Antwort basierend auf dem Inhalt

  3. Lesen Sie den Datenbankinhalt, geben Sie ihn als Zeichenfolge zurück und antworten Sie mit Informationen

Aber es scheint ein Problem im Datenbankbetrieb zu geben und ich kann nicht antworten. Andere case '1' usw. sind in Ordnung.

Ich habe versucht, in jedem Schritt der Methode einen getSql()Test hinzuzufügen. echo '成功'Ich werde nicht zu der Stelle zurückkehren, die ich unten kommentiert habe. Kann mir jemand sagen, was los ist?

Wie überprüfe ich, ob mysqli unterstützt wird? Ich bin CentOS 6.7 PHP 5.6 phpinfo() Der angezeigte Inhalt zu MySQL lautet wie folgt:

Ich weiß, dass es in PHP unter Windows eine Erweiterung gibt, die aktiviert werden kann. Wie ist die PHP-Konfiguration unter Linux?

WeChat entwickelt PHP-Datenbankabfragen, antwortet auf Informationen, kann aber keine Daten abrufen? Oder ist das Format falsch?
WeChat entwickelt PHP-Datenbankabfragen, antwortet auf Informationen, kann aber keine Daten abrufen? Oder ist das Format falsch?

<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>
Nach dem Login kopieren
Nach dem Login kopieren

Antwortinhalt:

Der Prozess ist so

  1. Parsen Sie die von WeChat gesendete XML-Datei und erhalten Sie den vom Benutzer gesendeten Inhalt

  2. Antwort basierend auf dem Inhalt

  3. Lesen Sie den Datenbankinhalt, geben Sie ihn als Zeichenfolge zurück und antworten Sie mit Informationen

Aber es scheint ein Problem im Datenbankbetrieb zu geben und ich kann nicht antworten. Andere case '1' usw. sind in Ordnung.

Ich habe versucht, in jedem Schritt der Methode einen getSql()Test hinzuzufügen. echo '成功'Ich werde nicht zu der Stelle zurückkehren, die ich unten kommentiert habe. Kann mir jemand sagen, was los ist?

Wie überprüfe ich, ob mysqli unterstützt wird? Ich bin CentOS 6.7 PHP 5.6 phpinfo() Der angezeigte Inhalt zu MySQL lautet wie folgt:

Ich weiß, dass es in PHP unter Windows eine Erweiterung gibt, die aktiviert werden kann. Wie ist die PHP-Konfiguration unter Linux?

WeChat entwickelt PHP-Datenbankabfragen, antwortet auf Informationen, kann aber keine Daten abrufen? Oder ist das Format falsch?
WeChat entwickelt PHP-Datenbankabfragen, antwortet auf Informationen, kann aber keine Daten abrufen? Oder ist das Format falsch?

<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>
Nach dem Login kopieren
Nach dem Login kopieren

Jede Zeile in diesem Teil der Datenbank ist korrekt, aber zusammengenommen sind sie falsch.
Die Verbindung vorne ist eine prozessorientierte Methodemysqli_connect
Die Abfrage und der Werteabruf hinten sind objektorientierte Methoden

Ersetzen wir

mysqli_connect durch new mysqli

Versuchen Sie es mit mysql_connect(), mysql_select_db() und 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
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage