MySQLに直接接続する(またはクライアントから直接他のデータベースにアクセスする)ことは、Firebaseを除いて、お勧めできません。MySqldbと対話する場合は、サーバーアプリを作成し、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);
}