Połączenie bezpośrednio z MySQL (lub jakimkolwiek innym dostępem do bazy danych bezpośrednio od klientów) nie jest dobrym pomysłem, z wyjątkiem Firebase. Jeśli chcesz wchodzić w interakcję z bazą danych MySql, lepszym rozwiązaniem jest utworzenie aplikacji serwerowej i udostępnienie niektórych API REST HTTP (z node.js, php itp.). Za pomocą API możesz również udostępnić token dla klienta w celu uzyskania dostępu do Twoich danych. Możesz wysyłać żądania HTTP https://api.dartlang.org/stable/1.24.3/dart-io/HttpClient-class.html .
Teraz, jeśli z jakiegokolwiek powodu chcesz nadal łączyć się bezpośrednio z MySQL, pamiętaj, że każda aplikacja kliencka może uzyskać dostęp do Twojej bazy danych za pomocą zapisu w tym przypadku (i nie jest to w ogóle dobra praktyka!) tylko dla przykładu testowego możesz spróbować utworzyć plik php:
// Podłącz i wstaw przykładowe dane
<?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";
}
?>
Musisz również napisać część z trzepotaniem, która powoduje żądanie na http.post
void post() async {
var result = await http.post(
"http://{your url}/index.php",
body: {
"value": "Test DB Connection"
}
);
print(result.body);
}