sql >> Databáze >  >> RDS >> Mysql

Propojit Parse s externí databází?

Pokud máte na mysli něco jako běžný mysql konektor, tak odpověď je ne, nemůžete. V současnosti je jediným způsobem, jak provést analýzu a něco jiného ve vztahu, dotazování z a do analýzy. Aby bylo jasno:

  • Pokud chcete získat hodnotu z Parse, která je uložena v mysql, musíte použít http požadavek na konkrétní php modul uložený na vašem php webu (a vámi implementovaný), který očekává nějaký parametr, a vrátit výsledek v specifickým způsobem, obvykle ve formátu json, s použitím také hlavičky http application/json.

  • Pokud chcete získat hodnotu z php, která je uložena v parse db, můžete spustit volání REST z php podle specifikace na webu parse ( https://parse.com/docs/rest/guide/ ), nebo jednoduše pomocí php sdk ( https://github.com/ParsePlatform/parse- php-sdk ). Podívejte se také na Parse Webhooks.

Z toho, co jsem pochopil, již máte fungující webovou službu, takže když to uděláte, budete pouze proxy zdroje uložené na vašem serveru na mysql svým klientům prostřednictvím Parse. Jinými slovy, měli byste vytvořit funkci Parse Cloud pro každý typ informací, které chcete načíst na klientech pomocí Parse SDK (pro iOS nebo Android) a další funkci Parse Colud pro každou akci, kterou provedete na svých zařízeních a kterou chcete uložit. na vaší databázi mysql, vždy prostřednictvím systému Parse.

Můj osobní názor je zůstat na Mysql, zejména proto, že na Parse máme stále mnoho omezení na dotazy (žádná skupina podle, žádné odlišení, časový limit dotazu atd.), zatímco se zdá, že je to opravdu dobrá služba pro push oznámení. Každopádně to vše závisí na složitosti vašeho softwaru a jak jsem řekl, je to jen můj názor.

[Upravit]

Zde příklad:

V analýze cloudového kódu vytvořte cloudovou funkci s názvem „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            
        }
    });

});

Ukázkový modul 'getUser.php' by mohl být

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

?>

Doufám, že to pomůže




  1. Jak přidat omezení primárního klíče do sloupců identity do všech tabulek v databázi SQL Server - SQL Server / Výukový program TSQL, část 63

  2. Další/předchozí ID MySQL (libovolné pořadí řazení)

  3. Bezpečná třída PHP připojující se k MySQL?

  4. Řešení pro dynamické příkazy v uložených procedurách volaných ze spouštěčů