【问题标题】:Is a SQL db needed for retrieving data from a server?从服务器检索数据是否需要 SQL 数据库?
【发布时间】:2014-12-14 21:07:33
【问题描述】:

抱歉,我是 Web 开发的新手。我最近一直在玩一些 JSON 对象,并且一直在使用 W3school 网站上的一些示例 - 'http://www.w3schools.com/json/json_example.asp

该示例从 MYSQLi db 检索数据并将其注入 JSON 对象。我一直在使用这个例子来创建一个动态站点但是我的问题是我不确定你是否需要一个数据库来首先存储数据。 JSON对象可以直接从服务器获取吗?

来自服务器的响应被解析为 JSON 对象。即 var = JSON.parse(response)

<!DOCTYPE html>

<html>

<head>

<title>XMLHTTPREQUESTEXAMPLE</title>

</head>

<body>

<p id="id01"></p>

<script>

var xmlhttp = new XMLHttpRequest();

var url = "//http:URL";

xmlhttp.onreadystatechange=function() {

    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

        myFunction(xmlhttp.responseText);

    }else{

                    document.getElementById("id01").innerHTML = "Server not responding";

                }

}

xmlhttp.open("GET", url, true);

xmlhttp.send();



function myFunction(response) {

    var arr = JSON.parse(response);

    var i;

    var out = "<table><tr><th>Name</th><th>Job Title</th><th>Room No</th><th>Tel Ext</th><th>Email</th></tr>";



    for(i = 0; i < arr.length; i++) {

        out += "<tr><td>" + 

        arr[i].Name +

        "</td><td>" +

        arr[i].JobTitle +

        "</td><td>" +

        arr[i].RoomNo +

        "</td></tr>"

                                arr[i].TelExt +

        "</td></tr>"

                                arr[i].Email +

        "</td></tr>";

    }

    out += "</table>"

    document.getElementById("id01").innerHTML = out;

}

</script>

</body>

</html>

来自 W3 学校网站的服务器上的示例 php 脚本。

$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");

$result = $conn->query("SELECT CompanyName, City, Country FROM Customers");

$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "[") {$outp .= ",";}
    $outp .= '{"Name":"'  . $rs["CompanyName"] . '",';
    $outp .= '"City":"'   . $rs["City"]        . '",';
    $outp .= '"Country":"'. $rs["Country"]     . '"}'; 
}
$outp .="]";

$conn->close();

echo($outp);
?>

【问题讨论】:

  • 欢迎来到 Stack Overflow!如果您只能发布代码的相关部分,它可能会帮助您更快地获得答案(除非您的问题确实需要整个部分)。我对这种语言有些陌生,所以很难说。您可能想查看有关帮助的站点导览 --> 站点导览,您可以了解有关该站点的更多信息,并为此获得徽章!
  • 你没有提到这是否有效,即使它似乎有效。如果它有效,则表明您可以从 PHP 脚本中获取数据,而 PHP 脚本仅输出 JSON。如何创建 JSON(是否通过 DB)是您的选择。
  • 不,它不是,因为 php 脚本是该站点的示例。我在问你是否需要创建一个数据库。你不能在服务器本身上存储一个 json 对象吗?

标签: php ajax json mysqli xmlhttprequest


【解决方案1】:

该示例使用 MySQL 数据库来检索数据,但您可以简单地回显您自己的数据,以便使用 JSON 示例测试您的 AJAX,如下所示:

<?php

$array = array(
"Key" => "value",
"Foo" => "Bar"
);

$jsonData = json_encode($array);

echo ($jsonData);

?>

然后您可以通过执行以下操作来检索 Javascript 的 myFunction 中的值:

arr.Foo; //would return Bar

数据库仅用于存储长期数据,本教程的功能部分不需要它。

【讨论】:

  • 是的,这就是我一直在尝试做的事情。我不想创建数据库,因为我想要的数据只是用于显示信息,而不是保存记录。我想让它动态化,所以将来可以说例如需要进行任何更改,然后我可以只更改 JSON 对象中的数据,而不必弄乱整个站点。我不确定 JSON 是否对此最有用,但据我所知。谢谢
【解决方案2】:

我认为最合适的问题是“这种类型的数据/应用程序是否需要数据库?”或者,“我应该为这种类型的应用程序使用数据库吗?”从技术上讲,不,您不需要数据库来存储和从服务器检索信息,但根据您要实现的目标,数据库可能是最明智的解决方案。

【讨论】:

    【解决方案3】:

    你试过json_encode($value)吗? http://php.net/manual/en/function.json-encode.php

    这会将数组编码为 json 对象,当然 - 您可以将 json 数据存储在任何类型的文件中,而不仅仅是在数据库中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-05
      • 2017-07-12
      • 2018-07-03
      • 2021-01-01
      相关资源
      最近更新 更多