Връзката директно към MySQL (или друг достъп до база данни директно от клиенти) не е добра идея, с изключение на Firebase. Ако искате да взаимодействате с MySql db, по-доброто решение е да създадете сървърно приложение и да изложите някакъв HTTP REST API (с node.js, php и др.). С API можете да предоставите и токен за клиента за достъп до вашите данни. Можете да правите HTTP заявки https://api.dartlang.org/stable/1.24.3/dart-io/HttpClient-class.html .
Сега, ако по някаква причина искате все пак да се свържете директно с MySQL, просто имайте предвид, че всяко клиентско приложение може да получи достъп до вашата DB с запис разрешение в този случай (и това изобщо не е добра практика!) Само за тестов пример можете да опитате да създадете php файл:
// Пример за свързване и вмъкване на данни
<?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";
}
?>
Също така трябва да напишете трептящата част, която прави заявката на http.post
void post() async {
var result = await http.post(
"http://{your url}/index.php",
body: {
"value": "Test DB Connection"
}
);
print(result.body);
}