提问者:小点点

flutter&PHP-我无法从我的flutter应用程序发布到mysql数据库


我正在尝试从我的flutter应用程序连接数据库,我想发布我在文本字段写到数据库的值。 我写了一些代码,但我不能张贴到数据库,这是给我的错误。 我想我必须编辑我的php代码但我不知道我如何可以编辑,请帮助我。。。 下面的代码和错误

     Future<List> sendData() async {
   await http.post(
      "https://www.ekspar.com/trying/go.php",
      headers: {
        'Content-Type': 'application/json; charset=UTF-8',
      },
      body: {
        "adi": nameController.text,
        "soyadi": surnameController.text,
      },
    );
    
    json.decode(response.body);
  }

@override
  void initState() {
    sendData();
  }

@override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: Theme.of(context).backgroundColor,
        body: Scaffold(
          appBar: AppBar(
            title: Text("Register"),
          ),
          body: Container(
            child: Center(
              child: Column(
                children: <Widget>[
                  Text(
                    "ad",
                    style: TextStyle(fontSize: 18.0),
                  ),
                  TextField(
                    controller: nameController,
                    decoration: InputDecoration(hintText: 'ad'),
                  ),
                  Text(
                    "soyad",
                    style: TextStyle(fontSize: 18.0),
                  ),
                  TextField(
                    controller: surnameController,
                    decoration: InputDecoration(hintText: 'soyad'),
                  ),
                  RaisedButton(
                    child: Text("Register"),
                    onPressed: () {
                      setState(() {
                        _build();
                      });
                      sendData();
                    },
                  ),
                  _build()
                ],
              ),
            ),
          ),
        )

        //(_buildBody(),
        );
  }

和PHP:

<?
include("begin.php");
include("functions-develop.php");
$adi = $_POST['adi'];
$soyadi =$_POST['soyadi'];
if ($adi and $soyadi) {
$query = $func->query("insert into `dart` (`adi`, `soyadi`) VALUES ('$adi','$soyadi')");
echo "Kayit Eklenmiştir";
}
else
{
echo "Bos veri";
}
?>

和错误:

[VERBOSE-2:ui_dart_state.cc(166)] Unhandled Exception: FormatException: Unexpected character (at character 1)
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
^
#0      _ChunkedJsonParser.fail  (dart:convert-patch/convert_patch.dart:1404:5)
#1      _ChunkedJsonParser.parseNumber  (dart:convert-patch/convert_patch.dart:1271:9)
#2      _ChunkedJsonParser.parse  (dart:convert-patch/convert_patch.dart:936:22)
#3      _parseJson  (dart:convert-patch/convert_patch.dart:40:10)
#4      JsonDecoder.convert  (dart:convert/json.dart:505:36)
#5      JsonCodec.decode  (dart:convert/json.dart:156:41)
#6      jsonDecode  (dart:convert/json.dart:96:10)
#7      _LoginScreenState.sendData 
package:ekspar/screens/login.dart:357
<asynchronous suspension>
#8      _LoginScreenState.initState 
package:ekspar/screens/login.dart:373
#9      StatefulElement._firstBuild 
package:flutter/…/widgets/framework.dart:4684
#10     ComponentElement.mount 
package:flutter/…/widgets/framework.dart:4520
#11     Element.infl<…>

我做错了但是我不知道。。。


共1个答案

匿名用户

看一看你的API,让我觉得你在尝试发布数据。 同时,我可以看到你正在使用你的flutter应用程序中的一个get请求。

如果你试图发布数据,那么从flutter应用程序发出post请求,而不是GET请求。

下面是使用HTTP包在flutter中进行POST请求的示例。

POST请求示例:

String url = "https://www.ekspar.com.tr/onarim/post.php";
var response = await http.post(url, body: {
    "adi":"YOUR_DATA",
    "soyadi":"YOUR_DATA"
});

var body = jsonDecode(response.body);

if(response.statusCode == 200){
    debugPrint("Data posted successfully");
}else{
    debugPrint("Something went wrong! Status Code is: ${response.statusCode}");
}