-1

AndroidからPHPを介してデータベースにデータを送信する方法に関するガイドを見つけることができませんでした。

たとえば、次のサイトがあるとします。

function insert($var1) {
    // mysql inserting a new row
    $result = mysql_query("INSERT INTO report (name) VALUES ('$var1')");

    // check if row inserted or not
    if ($result) {
        // successfully inserted into database;
        $msg = "Message received.";
    } else {
        $msg = "Not received.";
    }

    return ($msg);
}

if (isset($_POST['name'])) {
   $name = $_POST['name']);
   insert($name);   
} else {
   echo "No input.";
}

Android プロジェクトからこれを呼び出すにはどうすればよいですか?

4

1 に答える 1

1

このチュートリアルを参照できますが、そのためには Web サーバーが必要です。

リクエストメカニズム Android アプリ ----> webserver ------> データベース (mysql)

応答メカニズム Android アプリ <---- ウェブサーバー <------ データベース (mysql)

Android アプリはJSONなどを使用しデータを取得し、表示します

PHPコード

   <?php

        $con=mysql_connect("host","username");
        if(!$con)
        {
        die("Could Not Connect".mysql_error());
        }

        $db="CREATE DATABASE login";
        mysql_query($db,$con);

        mysql_select_db("login",$con);

        $tab="CREATE TABLE info(FirstName varchar(20),LastName varchar(20))";
        mysql_query($tab,$con);

        $user_fname=$_POST['fn'];
        $user_lname=$_POST['ln'];

        $row= mysql_query("INSERT INTO info (FirstName,LastName)  VALUES('$user_fname',   '$user_lname')");
        if ($row) {
        // successfully inserted into database
        $response["success"] = 1;
        $response["message"] = "Product successfully created.";
        echo $row;
        }
        mysql_close($con);

     ?>

データの送信 (Android)

        HttpClient httpclient = new DefaultHttpClient();

        HttpPost httppost = new HttpPost("http://127.0.0.1:4001/file.php");


        List<NameValuePair> pair=new ArrayList<NameValuePair>(2);
        pair.add(new BasicNameValuePair("fn",fname));
        pair.add(new BasicNameValuePair("ln",lname));


        httppost.setEntity(new UrlEncodedFormEntity(pair));
        HttpResponse response = httpclient.execute(httppost);
于 2013-05-24T20:24:57.830 に答える