Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment connecter flutter à la base de données mysql localhost

Une connexion directe à MySQL (ou à tout autre accès à la base de données directement à partir des clients) n'est pas une bonne idée, à l'exception de Firebase. Si vous souhaitez interagir avec la base de données MySql, une meilleure solution consiste à créer une application serveur et à exposer une API HTTP REST (avec node.js, php etc.). Avec l'API, vous pouvez également fournir un jeton au client afin d'accéder à vos données. Vous pouvez effectuer des requêtes HTTP https://api.dartlang.org/stable/1.24.3/dart-io/HttpClient-class.html .

Maintenant, si pour une raison quelconque vous souhaitez toujours vous connecter directement à MySQL, gardez simplement à l'esprit que n'importe quelle application cliente peut accéder à votre base de données avec écriture autorisation dans ce cas (et ce n'est pas du tout une bonne pratique !) juste pour un exemple de test, vous pouvez essayer de créer un fichier php :

// Connecter et insérer un exemple de données

<?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";
    } 
?>

Il faut également écrire la partie flutter qui fait la demande sur http.post

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