Androidアプリケーションからデータベースに接続したいのですが、そのためのチュートリアルを見つけました(チュートリアルへのリンク)。
エミュレーターで使用しているときは正常に動作しますが、電話で使用しようとすると動作しません。ポートフォワードしたWAMPサーバーで試し、実際のWebホスト(000webhost)で試しました。エミュレーターと電話の唯一の違いはURLです。ここでは、10.0.2.2ではなくパブリックIPアドレスを指定する必要があります。また、WAMPサーバーをホストしているコンピューターのローカルIPを試してみました。一部のWebホストがコードに広告を追加することは知っていますが、WAMPはそれを行わないと確信しています。
電話を使用していると、LogCatから次のエラーが発生します。
Error parsing data org.json.JSONException: Value <html> of type java.lang.String cannot be converted to JSONObject
アップデート1:
cURLを使用して、何が返されるかを確認してみました。それはたくさん(タイトル、bgcolorなど)を返しますが、これは面白いと思います:
Access denied for user 'root'@'localhost' (using password: NO) in C:\wamp\www\android_connect\db_connect.php on line <i>28</i></th></tr>
データベースにアクセスできないようですが、間違っているのではないでしょうか。
cURLを使用してローカルホストにアクセスすると、データベースから正しいアイテムが返されますが、パブリックIPを持つサーバーのようにすべてのHTMLコードが返されるわけではありません。
アップデート2:
パブリックWAMPサーバーの問題を解決しました。私は初心者で、サーバーにパスワードを設定したことを忘れていました。
しかし、ブラウザからウェブホスト(000webhost)を使用すると、次のエラーが発生します。
PHP Error Message
Warning: require_once(__DIR__/db_connect.php) [function.require-once]: failed to open stream: No such file or directory in /home/a7471305/public_html/android_connect/get_all_products.php on line 12
Free Web Hosting
PHP Error Message
Fatal error: require_once() [function.require]: Failed opening required '__DIR__/db_connect.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/a7471305/public_html/android_connect/get_all_products.php on line 12
Free Web Hosting
そして、cURLからこのエラーが発生します:
<b>Fatal error</b>: require_once() [<a href='function.require'>function.require
</a>]: Failed opening required '__DIR__/db_connect.php' (include_path='.:/usr/li
b/php:/usr/local/lib/php') in <b>/home/a7471305/public_html/android_connect/get_
all_products.php</b> on line <b>12</b><br />
この問題はどのように解決できますか?