Mysql
 sql >> Database >  >> RDS >> Mysql

Come connettere flutter al database mysql di localhost

Una connessione diretta a MySQL (o qualsiasi altro accesso al database direttamente dai client) non è una buona idea, ad eccezione di Firebase. Se vuoi interagire con il db MySql una soluzione migliore è creare un'app server ed esporre alcune API REST HTTP (con node.js, php ecc.). Con l'API puoi fornire anche un token per il client per accedere ai tuoi dati. Puoi fare richieste HTTP https://api.dartlang.org/stable/1.24.3/dart-io/HttpClient-class.html .

Ora, se per qualsiasi motivo vuoi ancora connetterti direttamente a MySQL, tieni presente che qualsiasi applicazione client può accedere al tuo DB con scrittura permesso in questo caso (e questa non è affatto una buona pratica!) solo per un esempio di prova puoi provare a creare un file php:

// Esempio di connessione e inserimento dati

<?php 
    if (isset($_POST["value"])) {
        $servername = "localhost";
        $user = "username";
        $pw = "password";
        $db = "data";
        #Connect to Server
        $con = new Mysqli($servername, $user, $pw, $db) or die(Mysqli_errno());

        $value =htmlspecialchars(stripslashes(trim($_POST["value"])));

        $sql = $con->prepare("INSERT INTO tableName (value) VALUES ('$value')");
        $result = $sql->execute();
        if ($result) {
            echo "Success";
        }
        else {
            echo "Failed";
        }
        $con->close();
    } 
    else {
       echo "Not found";
    } 
?>

Devi anche scrivere la parte del flutter che fa la richiesta su http.post

void post() async {
    var result = await http.post(
        "http://{your url}/index.php",
         body: {
           "value": "Test DB Connection"
         }
    );
    print(result.body);
}