AngularJS SQL


AngularJS เหมาะอย่างยิ่งสำหรับการแสดงข้อมูลจากฐานข้อมูล เพียงตรวจสอบให้แน่ใจว่าข้อมูลอยู่ในรูปแบบ JSON


การดึงข้อมูลจากเซิร์ฟเวอร์ PHP ที่ใช้ MySQL

ตัวอย่าง AngularJS

<div ng-app="myApp" ng-controller="customersCtrl">

<table>
  <tr ng-repeat="x in names">
    <td>{{ x.Name }}</td>
    <td>{{ x.Country }}</td>
  </tr>
</table>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
  $http.get("customers_mysql.php")
  .then(function (response) {$scope.names = response.data.records;});
});
</script>

การดึงข้อมูลจากเซิร์ฟเวอร์ ASP.NET ที่เรียกใช้ SQL

ตัวอย่าง AngularJS

<div ng-app="myApp" ng-controller="customersCtrl">

<table>
  <tr ng-repeat="x in names">
    <td>{{ x.Name }}</td>
    <td>{{ x.Country }}</td>
  </tr>
</table>

</div>

<script>
var app = angular.module('myApp', []);
app.controller('customersCtrl', function($scope, $http) {
  $http.get("customers_sql.aspx")
  .then(function (response) {$scope.names = response.data.records;});
});
</script>


ตัวอย่างรหัสเซิร์ฟเวอร์

ส่วนต่อไปนี้คือรายการของรหัสเซิร์ฟเวอร์ที่ใช้ในการดึงข้อมูล SQL

  1. การใช้ PHP และ MySQL ส่งคืน JSON
  2. การใช้ PHP และ MS Access ส่งคืน JSON
  3. การใช้ ASP.NET, VB และ MS Access ส่งคืน JSON
  4. ใช้ ASP.NET, Razor และ SQL Lite ส่งคืน JSON

คำขอ HTTP ข้ามไซต์

คำขอข้อมูลจากเซิร์ฟเวอร์อื่น (นอกเหนือจากหน้าคำขอ) เรียกว่าคำขอ HTTP ข้ามไซต์

คำขอข้ามไซต์เป็นเรื่องปกติบนเว็บ หลายหน้าโหลด CSS, รูปภาพ และสคริปต์จากเซิร์ฟเวอร์ต่างๆ

ในเบราว์เซอร์สมัยใหม่ คำขอ HTTP ข้ามไซต์จากสคริปต์ จะถูกจำกัดไว้ที่ไซต์เดียวกันด้วยเหตุผลด้านความปลอดภัย

มีการเพิ่มบรรทัดต่อไปนี้ในตัวอย่าง PHP เพื่ออนุญาตการเข้าถึงข้ามไซต์

header("Access-Control-Allow-Origin: *");

1. รหัสเซิร์ฟเวอร์ PHP และ MySQL

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

$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 ='{"records":['.$outp.']}';
$conn->close();

echo($outp);
?>

2. รหัสเซิร์ฟเวอร์ PHP และ MS Access

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=ISO-8859-1");

$conn = new COM("ADODB.Connection");
$conn->open("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=Northwind.mdb");

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

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

$conn->close();

echo ($outp);
?>

3. รหัสเซิร์ฟเวอร์ ASP.NET, VB และ MS Access

<%@ Import Namespace="System.IO"%>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.OleDb"%>
<%
Response.AppendHeader("Access-Control-Allow-Origin", "*")
Response.AppendHeader("Content-type", "application/json")
Dim conn As OleDbConnection
Dim objAdapter As OleDbDataAdapter
Dim objTable As DataTable
Dim objRow As DataRow
Dim objDataSet As New DataSet()
Dim outp
Dim c
conn = New OledbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=Northwind.mdb")
objAdapter = New OledbDataAdapter("SELECT CompanyName, City, Country FROM Customers", conn)
objAdapter.Fill(objDataSet, "myTable")
objTable=objDataSet.Tables("myTable")

outp = ""
c = chr(34)
for each x in objTable.Rows
if outp <> "" then outp = outp & ","
outp = outp & "{" & c & "Name"    & c & ":" & c & x("CompanyName") & c & ","
outp = outp &       c & "City"    & c & ":" & c & x("City")        & c & ","
outp = outp &       c & "Country" & c & ":" & c & x("Country")     & c & "}"
next

outp ="{" & c & "records" & c & ":[" & outp & "]}"
response.write(outp)
conn.close
%>

4. รหัสเซิร์ฟเวอร์ ASP.NET, Razor C# และ SQL Lite

@{
Response.AppendHeader("Access-Control-Allow-Origin", "*")
Response.AppendHeader("Content-type", "application/json")
var db = Database.Open("Northwind");
var query = db.Query("SELECT CompanyName, City, Country FROM Customers");
var outp =""
var c = chr(34)
}
@foreach(var row in query){
if (outp != "") {outp = outp + ","}
outp = outp + "{" + c + "Name"    + c + ":" + c + @row.CompanyName + c + ","
outp = outp +       c + "City"    + c + ":" + c + @row.City        + c + ","
outp = outp +       c + "Country" + c + ":" + c + @row.Country     + c + "}"
}
outp ="{" + c + "records" + c + ":[" + outp + "]}"
@outp