Androidからphp-serverにパラメータが渡された後に実行されるSQLステートメントを表示する方法(discuzインターフェイスに依存)

WBOY
リリース: 2016-06-23 13:51:48
オリジナル
868 人が閲覧しました

プロジェクト構成は次のように記述されます:
サーバー側: discuz、Android に接続されたサーバー側インターフェースのデバッグ (Android 側から送信されたリクエストの受信に使用)
クライアント: Android4.4

問題のプロセスは次のように記述されます。
Android 側はフォーラムに投稿後、httppost を使用してパラメータをカプセル化し、httpclient を通じて PHP 側の関連する URL に送信します。PHP 側で関連する SQL 操作を実行し、mysql_query を通じて Android 側に true または false を返します。

問題は次のように説明されています:
これでAndroid側でpostした結果が{"result":"post failed"}となってしまいました(ˇ?ˇ) php側の実行時にエラーが発生したのかと思いましたSQL操作、そしてクライアントによって実行されたphpを確認したかったのです。私のphpインターフェースはdiscuzに依存しているため、zend Studio単独でインターフェースをApacheのhtdocsにデプロイすると、デプロイが成功せず、Android側から送信されたパラメータを受信できない

としたいのですが。皆さんに相談してください。
1) このインターフェースを Apache にデプロイして Android 側からデータを受信することは可能ですか (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 = '') {		global $_G;file_put_contents(DISCUZ_ROOT.'./appapi/log.txt',$errormsg.PHP_EOL,FILE_APPEND);		ob_end_clean();		$gzip = getglobal('gzipcompress');		ob_start($gzip ? 'ob_gzhandler' : null);//后面的就不复制了...}
ログイン後にコピー

欠点は、discuz 内のすべての SQL エラーが記録されることです。もちろん、それらは通常、discuz によって報告されます。SQL エラーはまだほとんどありません

まず第一に、jam00 さん、ご回答ありがとうございます。ただし、私のフォーラムは、sourceclassclass_error.php で言及されている対応する変更を加えたものです。

function show_error($type, $errormsg, $phpmsg = '') {		global $_G;		file_put_contents('http://192.168.1.101/bbs/android/log.txt',$errormsg.PHP_EOL,FILE_APPEND);		//file_put_contents(DISCUZ_ROOT.'./android/log.txt',$errormsg.PHP_EOL,FILE_APPEND); 		ob_end_clean();		$gzip = getglobal('gzipcompress');		ob_start($gzip ? 'ob_gzhandler' : null);
ログイン後にコピー

投稿するために Android を実行した後、Android フォルダーがありません ファイル log.txt が見つかりました。
1 点追加したいと思います。投稿リクエストは Android によってアプリケーション インターフェイスに直接送信され (インターフェイスはレベル 2 ディレクトリとして直接アクセスできます)、mysql データベースは SQL を通じて処理されてから Android に返されます。ページのレンダリングについては、X2 が通信するため、オリジナルのディスクと違いはありません。したがって、元の discuz X プロジェクトでエラー ログを設定すると、この独立したインターフェイスのエラーをキャプチャできない可能性があります。そこでzend studio10.0でインターフェースをデバッグしてSQL文を取得することを考えました。
とにかく、jam00 さん、熱心なご回答ありがとうございました!


discuz のデータと完全に統合して開発時間を短縮したい場合は、discuz の既存の DB クラスとメソッドを使用することをお勧めします

zend がどこで SQL を処理するかはわかりませんが、SQL の実行でエラーが発生した場合, mysql_error() を使用してエラー情報を取得し、file_put_contents を使用してそれを txt に出力することができます

インターフェースの関連コードを表示します。

コードを使わずに問題を解決する方法。 。 。

これはインターフェースによって異なりますが、手動で個別にデバッグできますか?

可能であれば、送信されたパラメーターのみを気にする必要があります

プレイデータをパッケージ化するあなたのようなシステムは、クライアントとサーバーを個別にデバッグする必要があります



皆さん、特に最初に助けを提供してくれた jam00 に感謝します、問題は次のとおりです解決されました。 mysql_errorのエラーレポートを確認して、最終的にforum_postのフィールドタイプを変更しました。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!