【问题标题】:Webservice variable to return response用于返回响应的 Web 服务变量
【发布时间】:2021-02-23 17:57:26
【问题描述】:

我不是专业人士(所以请放纵一下),我提出了一个非常明显的问题,但浏览网页并不能为我提供明确的答案。

我已经创建了一个带有 MySQL 数据库的小网站,并且我还在 Flutter 中开发了一个小应用程序来提供数据库。我基于我在网页中使用的 php“脚本”用 php 编写了一个非常简单的 Web 服务,以将表单的结果发送到数据库。

在颤振中,我将使用 httpRequest 将信息发送到 Web 服务(一个 Post 方法)。 您可以在下面找到我的 Web 服务的项目代码:

<?php
//Connexion à la DB
try {
$bdd = new PDO('mysql:host=localhost; dbname=name', 'root', 'root');
} catch (\Exception $e) {
  die('Erreur : '.$e->getMessage());
}

//Lecture du POST
$var1 = isset($_POST["var1"])? htmlspecialchars($_POST["var1"]): "";
$var2 = isset($_POST["var2"])? htmlspecialchars($_POST["var2"]): "";

//Insertion des données
$req = $bdd->prepare("INSERT INTO Table (var1, var2) values (?,?)");
$req->execute(array($var1, $var2,));

//Header
header('Content-type: application/json');
 ?>

我相信我不需要做任何特别的事情来发送请求,它应该像这样工作。

我没有抓住的是答案以及如何“发送”它作为我的 httpRequest 的答案(即等待答案)。

我有两种情况: 在这里,我想发送答案的状态,以便能够告诉应用程序用户操作是否成功。我必须在哪个变量中存储状态以及如何将其作为对 httpRequest 的回答发送? 第二种情况是我的 Post 必须向应用程序返回信息的情况。我可能必须获取它并将其存储到 php 中的数组中。之后,我不知道如何将此数组发送到 httpRequest。

也许我完全错了,我不必搜索那么远......

非常感谢您的帮助!

伯纳德

【问题讨论】:

    标签: php web-services httprequest


    【解决方案1】:

    您至少需要 2 个字段:状态和消息。你的情况最简单的例子是

    <?php
    //Header
    header('Content-type: application/json');
    
    try {
        $bdd = new PDO('mysql:host=localhost; dbname=name', 'root', 'root');
    } catch (\Exception $e) {
        $responseArray = array(
            'status' => 'false',
            'message' => 'MySQL connection error.'
        );
        die(json_encode($responseArray));
    }
    
    //Lecture du POST
    $var1 = isset($_POST["var1"])? htmlspecialchars($_POST["var1"]): "";
    $var2 = isset($_POST["var2"])? htmlspecialchars($_POST["var2"]): "";
    
    //Insertion des données
    $req = $bdd->prepare("INSERT INTO Table (var1, var2) values (?,?)");
    $execute = $req->execute(array($var1, $var2,))
    if ($execute) {
        $responseArray = array(
            'status' => 'true',
            'message' => 'All data have been successfully stored.'
        );
    } else {
        $responseArray = array(
            'status' => 'false',
            'message' => 'Error happened when storing data.'
        );
    }
    
    echo json_encode($responseArray);
    
    
    
    

    【讨论】:

    • 非常感谢! $responseArray 变量将如何传递给我的 httpRequest?它会自动发生吗?如果是的话,你能稍微解释一下吗?名称 responseArray 是强制性的吗?我承认我有点困惑。 ...或者有一个 json 编码的变量就足够了吗?再次感谢!
    猜你喜欢
    • 2014-01-11
    • 1970-01-01
    • 2013-01-03
    • 2014-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    相关资源
    最近更新 更多