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

So verbinden Sie Flutter mit der localhost-Mysql-Datenbank

Eine direkte Verbindung zu MySQL (oder ein anderer Datenbankzugriff direkt von Clients) ist keine gute Idee, außer Firebase. Wenn Sie mit der MySql-Datenbank interagieren möchten, ist es eine bessere Lösung, eine Serveranwendung zu erstellen und eine HTTP-REST-API (mit node.js, php usw.). Mit der API können Sie auch einen Token für den Client bereitstellen, um auf Ihre Daten zuzugreifen. Sie können HTTP-Anfragen stellen https://api.dartlang.org/stable/1.24.3/dart-io/HttpClient-class.html .

Wenn Sie sich aus irgendeinem Grund immer noch direkt mit MySQL verbinden möchten, denken Sie daran, dass jede Client-Anwendung mit write auf Ihre DB zugreifen kann Erlaubnis in diesem Fall (und das ist überhaupt keine gute Praxis!) Nur als Testbeispiel können Sie versuchen, eine PHP-Datei zu erstellen:

// Datenbeispiel verbinden und einfügen

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

Sie müssen auch den Flatterteil schreiben, der die Anfrage auf http.post

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