Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Parse mit externer Datenbank verbinden?

Wenn Sie so etwas wie einen gewöhnlichen MySQL-Connector meinen, lautet die Antwort nein, das können Sie nicht. Im Moment besteht die einzige Möglichkeit, Parse und etwas anderes in Beziehung zu setzen, darin, von und nach Parse abzufragen. Um es klar zu sagen:

  • Wenn Sie einen Wert von Parse erhalten möchten, der in MySQL gespeichert ist, müssen Sie eine http-Anfrage an ein bestimmtes PHP-Modul verwenden, das auf Ihrer PHP-Website gespeichert (und von Ihnen implementiert) ist und einige Parameter erwartet, und das Ergebnis in a zurückgeben auf bestimmte Weise, normalerweise im json-Format, wobei auch der http-Header application/json verwendet wird.

  • Wenn Sie einen Wert von PHP erhalten möchten, der in der Parse-Datenbank gespeichert ist, können Sie einen REST-Aufruf von PHP ausführen, indem Sie der Spezifikation auf der Parse-Website folgen ( https://parse.com/docs/rest/guide/ ), oder verwenden Sie einfach das PHP-SDK ( https://github.com/ParsePlatform/parse- php-sdk ). Sehen Sie sich auch die Parse Webhooks an.

Soweit ich weiß, verfügen Sie bereits über einen funktionierenden Webdienst. Wenn Sie dies tun, würden Sie einfach die auf Ihrem Server auf mysql gespeicherten Ressourcen über Parse an Ihre Clients weiterleiten. Mit anderen Worten, Sie sollten eine Parse Cloud-Funktion für jede Art von Informationen erstellen, die Sie auf den Clients mit dem Parse SDK (für iOS oder Android) abrufen möchten, und eine weitere Parse Colud-Funktion für jede Aktion, die Sie auf Ihren Geräten ausführen und speichern möchten auf Ihrer MySQL-Datenbank, immer durch das Parse-System.

Meine persönliche Meinung ist, bei Mysql zu bleiben, insbesondere weil wir bei Parse immer noch viele Einschränkungen bei den Abfragen haben (keine Gruppierung nach, keine Unterscheidung, Abfragezeitüberschreitung usw.), während dies ein wirklich guter Dienst für den Push zu sein scheint Benachrichtigung. Wie auch immer, all dies hängt von der Komplexität Ihrer Software ab und ist, wie gesagt, nur meine Meinung.

[Bearbeiten]

Hier ein Beispiel:

Erstellen wir im Parse-Cloud-Code eine Cloud-Funktion namens "get_user_info"

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            
        }
    });

});

Das Beispielmodul 'getUser.php' könnte sein

<?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();

?>

Hoffe es hilft