sql >> データベース >  >> RDS >> Mysql

Android->PHP->MYSQLから複数のエントリを挿入します

    OK、JSON配列を使用してこの作業を行いました。誰かがそれを使用している場合は、次のようになります:

    Android、JSON文字列を作成:

    //Create JSON string start
    String json_string ="{\"upload_fishes\":[";
    
    //Repeat and loop this until all objects are added (and add try+catch)
    JSONObject obj_new = new JSONObject();
    obj_new.put("fish_id", your_looped_string_1[i]);
    obj_new.put("fish_lat", your_looped_string_2[i]);
    obj_new.put("fish_lon", your_looped_string_3[i]);
    json_string = json_string + obj_new.toString() + ",";
    
    //Close JSON string
    json_string = json_string.substring(0, json_string.length()-1);
    json_string += "]}";
    

    AndroidはPHPにデータを送信します(try + catchを追加):

    HttpParams httpParams = new BasicHttpParams();
    HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC);
    HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC);
    HttpClient client = new DefaultHttpClient(httpParams);
    
    String url = "http://yourserver.com/script.php";
    
    HttpPost request = new HttpPost(url);
    request.setEntity(new ByteArrayEntity(json_string.getBytes("UTF8")));
    request.setHeader("json", json_string);
    HttpResponse response = client.execute(request);
    
    Log.d("FISHY", response.getStatusLine().toString());
    

    PHPスクリプト:

    <?php
    
    //CONNECT TO THE DATABASE
     $DB_HOST = 'yourhost.com';
     $DB_USER = 'user';
     $DB_PASS = 'password';
     $DB_NAME = "db_name";
    
     $mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
    
     if(mysqli_connect_errno())
    {
    //    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    else
    {
    //    echo "Connected to MySQL";
    }
    
    
       $postdata = file_get_contents("php://input"); 
       $data = json_decode($postdata, true);
    
       if (is_array($data['upload_fishes'])) {
          foreach ($data['upload_fishes'] as $record) {
            $fid = $record['fish_id'];
            $flat = $record['fish_lat'];
        $flon = $record['fish_lon'];
    
            mysqli_query($mysqli,"INSERT INTO `fishes`(`fish_type_id`, `fish_lat`, `fish_lon`) VALUES ($fid, $flat, $flon)");
          }
       }
    
    
    mysqli_close($mysqli);
    ?>
    



    1. MySQL挿入ステートメント内でのphp変数の使用

    2. 集計関数SUMを使用してレコードをフィルタリングする方法

    3. ClusterControlを使用してMySQLとMariaDBのPCIコンプライアンスを実現する方法-リプレイ

    4. Oracleマネージドドライバーはasync/awaitを適切に使用できますか?