sql >> Databasteknik >  >> RDS >> Mysql

Koppla Parse med extern databas?

Om du menar något som en vanlig mysql-kontakt, så är svaret nej, det kan du inte. För närvarande är det enda sättet att göra parse och något annat i relation, att fråga från och till Parse. För att vara tydlig:

  • Om du vill få ett värde från Parse, som är lagrat i mysql, måste du använda en http-förfrågan till en specifik php-modul lagrad på din php-webbplats (och implementerad av dig) som förväntar sig någon paramenter, och returnera resultatet i en specifikt sätt, normalt i json-format, med hjälp av http header application/json.

  • Om du vill få ett värde från php, som är lagrat på parse db, kan du köra ett REST-anrop från php enligt specen på parse-webbplatsen ( https://parse.com/docs/rest/guide/ ), eller helt enkelt använda php sdk ( https://github.com/ParsePlatform/parse- php-sdk ). Ta också en titt på Parse Webhooks.

Vad jag förstod har du redan en fungerande webbtjänst, så om du gör detta, skulle du bara proxysätta resurserna som är lagrade på din server på mysql till dina klienter genom Parse. Med andra ord bör du skapa en Parse Cloud-funktion för varje typ av information du vill hämta på klienterna med hjälp av Parse SDK (för iOS eller Android) och en annan Parse Colud-funktion för varje åtgärd du utför på dina enheter och du vill spara på din mysql db, alltid genom Parse-systemet.

Min personliga åsikt är att stanna på Mysql, speciellt för att vi på Parse fortfarande har en hel del begränsningar på frågorna (ingen grupp efter, ingen distinkt, fråga timeout, etc.), samtidigt som det verkar vara en riktigt bra tjänst för push underrättelse. Hur som helst beror allt detta på hur komplex din programvara är och som jag sa, det är bara min åsikt.

[Redigera]

Här ett exempel:

Låt oss skapa en molnfunktion som heter 'get_user_info' i Parse cloud code

Parse.Cloud.define("get_user_info", 

function(request,response){

    // Parameters from client (iOS/Android app)
    var requestedUserId = request.params.user_id;

    // Calling beckend service for getting user information
    Parse.Cloud.httpRequest({
        method: "POST",        
        url: "https://www.yourPhpWebsite.com/getUser.php", /* This could be your url for the proper php module */
        body: { "php_param_user_id":requestedUserId }, /* Here you compose the body request for the http call, passing the php parameters and their values */
        success: function(httpResponse) {

        /* We expect that the php response is a Json string, using the header('application/json'), so: */
        var jsonResponse = JSON.parse(httpResponse.text);

        /* sample structure in jsonResponse: { "name":"Joe", "surname":"Banana", "birth_date":"01-02-1999" } */

        /* Do any additional stuff you need... */

        /* return the result to your iOS/Android client */
        return response.success( { "myRequestedUserInfo" : jsonResponse } );

        },
        error: function(httpResponse) {            
                return response.error({ "msg":"Unable to fetch this user", "code":123456 }); // sample error response            
        }
    });

});

Exempelmodulen 'getUser.php' kan vara

<?php

$expectedUserId = $_POST['php_param_user_id'];

// query your MySql db using passed user id
$query = "SELECT name,surname,birth_date FROM MyUserTable Where id = ".$expectedUserId;

// perform your query (the above one is just an example, would be better to use PDO and any other check, just to avoid SQL Injection)
// ...
// ..
// .

$resultQuery = row[0];

// sample json structure
$jsonResponseToParse = '{ "name":'.resultQuery["name"].', "surname":'.resultQuery["surname"].', "birth_date":'.resultQuery["birth_date"].' }';

header('application/json');

echo jsonResponseToParse;

exit();

?>

Hoppas det hjälper




  1. Ändra typ av varchar-fält till heltal:kan inte castas automatiskt till typ heltal

  2. UnsatisfiedLinkError i ursprunglig metod

  3. oracle SQL plus hur man avslutar kommandot i SQL-fil?

  4. Hur använder man Spring Boot med MySQL-databas och JPA?