Una conexión directa a MySQL (o cualquier otro acceso a la base de datos directamente desde los clientes) no es una buena idea, excepto Firebase. Si desea interactuar con MySql db, una mejor solución es crear una aplicación de servidor y exponer alguna API REST HTTP (con node.js, php, etc.). Con la API, también puede proporcionar un token para que el cliente acceda a sus datos. Puede realizar solicitudes HTTP https://api.dartlang.org/stable/1.24.3/dart-io/HttpClient-class.html .
Ahora, si por alguna razón aún desea conectarse directamente a MySQL, tenga en cuenta que cualquier aplicación cliente puede acceder a su base de datos con escribir permiso en este caso (¡y esto no es una buena práctica en absoluto!) solo como ejemplo de prueba, puede intentar crear un archivo php:
// Ejemplo de conexión e inserción de datos
<?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";
}
?>
También debe escribir la parte de aleteo que realiza la solicitud en http.post
void post() async {
var result = await http.post(
"http://{your url}/index.php",
body: {
"value": "Test DB Connection"
}
);
print(result.body);
}