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
stelltvoid post() async {
var result = await http.post(
"http://{your url}/index.php",
body: {
"value": "Test DB Connection"
}
);
print(result.body);
}