AngularJS学习之SQL
1.使用PHP从MySQL中读取数据:
<div ng-app="myApp" ng-controller="customersCtrl" >
<table>
<tr ng-repeat="x in names" >
<td>{{x.Names}}</td>
<td>{{x.Country}</td>
</tr>
</table>
</div>
<script>
var app=angular.module('myApp',[]);
app.controller('customersCtrl',function($scope,$http){
$http.get(http://www.runoob.com/angularjs/data/Customers_MySQL.php)
.success(function(response){$scope.names=response.records});
});
</script>
2.服务器端代码:
**使用PHP和MySQL,返回JSON;
**使用PHP和MS Access,返回JSON;
**使用ASP.NET,VB,及MS Access,返回JSON;
**使用ASP.NET,Razor(Razor 不是编程语言。它是服务器端标记语言。)及SQL Lite,返回JSON;
**Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法。
当网页被写入浏览器时,基于服务器的代码能够创建动态内容。在网页加载时,服务器在向浏览器返回页面之前,会执行页面内的基于服务器代码。由于是在服务器上运行,这种代码能执行复杂的任务,比如访问数据库。
Razor 基于 ASP.NET,它为 web 应用程序的创建而设计。
**SQLite是一个嵌入式SQL数据库引擎,与其它大多数SQL数据库不同的是,SQLite没有独立的服务进程。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
3.跨域HTTP请求:如果你需要从不同的服务器(不同的域名)上获取数据就需要使用跨域HTTP请求;
**跨域请求在网页上非常常见,很多网页从不同服务器上载入CSS,图片,JS脚本等;
**PHP Ajax跨域问题最佳解决方案:通过设置Access-Control-Allow-Origin来实现跨域:
(1)允许单个域名访问:指定客户端的域名为(http://client.runoob.com)跨域访问,则只需在请求的域名(http://server.runoob.com/server.php)文件头部添加以下代码:
header('Access-Control-Allow-Origin:http://client.runoob.com')
(2)允许多个域名访问:指定多个域名(http://client1.runoob.com,http://client2.runoob.com等)跨域访问,则只需在(http://server.runoob.com/server.php)文件头部添加如下代码:
$origin=isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : ' ';
$allow_origin=array(
'http://client1.runoob.com',
'http://client2.runoob.com'
);
if(in_array($origin,$allow_origin)){
header('Access-Control-Allow-Origin:'.$origin);
}
(3)允许所有域名访问:允许所有域名访问只需在http:.//server.runoob.com/server.php文件头部添加如下内容:
herder('Access-Control-Allow-Origin:*');
4.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(MYSQL_ASSOC)){
if($outp!=""){$outp .=",";}
$outp .='{ "Name": " '.$rs["CompanyName"] .' " , ' ;
$outp .=' "City" : " ' .$rs["City"] .' " , ';
$outp .=' "Cpuntry": " '.$rs["Country"] .' "
}';
}
$outp='{ "records" : ['.$outp'.] }';
$conn->close();
echo($outp);
?>