Android によって php-server に渡されたパラメーターの後に実行される SQL ステートメントを表示する方法 (discuz インターフェースに依存)
プロジェクト構成は次のように説明されます:
サーバー側: discuz、接続されたサーバー側インターフェースのデバッグto Android (クライアントから送信された Android リクエストを受信するために使用)
クライアント: Android 4.4
問題のプロセスは次のように説明されます:
Android クライアントがフォーラムに投稿した後、httppost を使用してパラメータをカプセル化し、httpclient を通じて php クライアントの関連 URL に送信します。php 側で関連する SQL 操作を実行し、mysql_query を通じて Android 側に true または false を返します。
問題は次のように説明されています:
Android 側のポストによって返される結果は {"result":"post failed"} です、(ˇ?ˇ) 次のようなときに起こるかもしれないと思いました。 php 側で SQL 操作が実行されます。エラーが発生したため、php 側で実行された SQL ステートメントを確認したいと思います。私のphpインターフェースはdiscuzに依存しているため、zendスタジオ単独でインターフェースをApacheのhtdocsにデプロイしてみましたが、デプロイは成功せず、Android側から送信されたパラメータを受信できません
皆さんにお聞きしたいのですが、
1) Android 側からデータを受信するためにこのインターフェースを Apache にデプロイすることは可能ですか (win7、Apache、mysql、php5.25、zend studio 10.0)
2) できない場合、Android 側をデバッグして PHP サーバー側パラメーターに送信する方法; 今、私は主に PHP サーバーに返された後に実行される SQL ステートメントを表示したいと考えています。
皆さん、よろしくお願いします
-----解決策---------
ちょうどこの問題に遭遇しました。解決策は次のとおりです。
検索:sourceclassdiscuzdiscuz_error.php、
検索:show_error($type, $errormsg, $phpmsg = '', $typemsg = '') を開きます。
show_error 関数の下で、file_put_contents 関数を使用して、$errormsg を txt に出力します。
public static function show_error($type, $errormsg, $phpmsg = '', $typemsg = '') {<br /> global $_G;<br />file_put_contents(DISCUZ_ROOT.'./appapi/log.txt',$errormsg.PHP_EOL,FILE_APPEND);<br /> ob_end_clean();<br /> $gzip = getglobal('gzipcompress');<br /> ob_start($gzip ? 'ob_gzhandler' : null);<br />//后面的就不复制了...<br /><br />}