【10】AngularJS SQL
AngularJS SQL
使用 PHP 从 MySQL 中获取数据
<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("test.php")
.success(function(response){$scope.names = response.records;});
});
</script>
ASP.NET 中执行 SQL 获取数据
<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("test.aspx")
.success(function(response){$scope.names = response.records;});
});
</script>
{"records":[
{
"Name":"Alfreds Futterkiste",
"City":"Berlin",
"Country":"Germany"
},
{
"Name":"Berglunds snabbköp",
"City":"Luleå",
"Country":"Sweden"
},
{
"Name":"Centro comercial Moctezuma",
"City":"México D.F.",
"Country":"Mexico"
},
{
"Name":"Ernst Handel",
"City":"Graz",
"Country":"Austria"
},
{
"Name":"FISSA Fabrica Inter. Salchichas S.A.",
"City":"Madrid",
"Country":"Spain"
},
{
"Name":"Galería del gastrónomo",
"City":"Barcelona",
"Country":"Spain"
},
{
"Name":"Island Trading",
"City":"Cowes",
"Country":"UK"
},
{
"Name":"Königlich Essen",
"City":"Brandenburg",
"Country":"Germany"
},
{
"Name":"Laughing Bacchus Wine Cellars",
"City":"Vancouver",
"Country":"Canada"
},
{
"Name":"Magazzini Alimentari Riuniti",
"City":"Bergamo",
"Country":"Italy"
},
{
"Name":"North/South",
"City":"London",
"Country":"UK"
},
{
"Name":"Paris spécialités",
"City":"Paris",
"Country":"France"
},
{
"Name":"Rattlesnake Canyon Grocery",
"City":"Albuquerque",
"Country":"USA"
},
{
"Name":"Simons bistro",
"City":"København",
"Country":"Denmark"
},
{
"Name":"The Big Cheese",
"City":"Portland",
"Country":"USA"
},
{
"Name":"Vaffeljernet",
"City":"Århus",
"Country":"Denmark"
},
{
"Name":"Wolski Zajazd",
"City":"Warszawa",
"Country":"Poland"
}
]}
服务端代码
以下列出了列出了几种服务端代码类型:
- 使用 PHP 和 MySQL。返回 JSON。
- 使用 PHP 和 MS Access。返回 JSON。
- 使用 ASP.NET, VB, 及 MS Access。 返回 JSON。
- 使用 ASP.NET, Razor, 及 SQL Lite。 返回 JSON。
跨域 HTTP 请求
如果你需要从不同的服务器(不同域名)上获取数据就需要使用跨域 HTTP 请求。
跨域请求在网页上非常常见。很多网页从不同服务器上载入 CSS, 图片,Js脚本等。
在现代浏览器中,为了数据的安全,所有请求被严格限制在同一域名下,如果需要调用不同站点的数据,需要通过跨域来解决。
以下的 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 代码实例
<%@ImportNamespace="System.IO"%>
<%@ImportNamespace="System.Data"%>
<%@ImportNamespace="System.Data.OleDb"%>
<%
Response.AppendHeader("Access-Control-Allow-Origin","*")
Response.AppendHeader("Content-type","application/json")
Dim conn AsOleDbConnection
Dim objAdapter AsOleDbDataAdapter
Dim objTable AsDataTable
Dim objRow AsDataRow
Dim objDataSet AsNewDataSet()
Dim outp
Dim c
conn =NewOledbConnection("Provider=Microsoft.Jet.OLEDB.4.0;data source=Northwind.mdb")
objAdapter =NewOledbDataAdapter("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, VB Razor 和 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 <>"" then 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
【10】AngularJS SQL的更多相关文章
- 【原创 Hadoop&Spark 动手实践 10】Spark SQL 程序设计基础与动手实践(下)
[原创 Hadoop&Spark 动手实践 10]Spark SQL 程序设计基础与动手实践(下) 目标: 1. 深入理解Spark SQL 程序设计的原理 2. 通过简单的命令来验证Spar ...
- 【数据库】优化SQL语言
第1章数据模型设计 第1条:确保所有表都有主键 [1]当表缺少主键时,会出现各种问题,所有表都必须有一列(或多列)设置为主键. [2]主键应当具备的特征 唯一性,值非空,不可变,尽可能简单 [3]不要 ...
- 【转】PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理
[转]PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理 只要有人用了: select t.* from ...
- 企业IT管理员IE11升级指南【10】—— 如何阻止IE11的安装
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...
- 【10】css hack原理及常用hack
[10]css hack原理及常用hack 原理:利用不同浏览器对CSS的支持和解析结果不一样编写针对特定浏览器样式.常见的hack有1)属性hack.2)选择器hack.3)IE条件注释 IE条件注 ...
- 【MyBatis】动态 SQL
[MyBatis]动态 SQL 转载: 目录 ========================================== 1.if 2.choose when otherwise 3.tri ...
- 【转】PL/SQL 使用技巧
ref:http://blog.chinaunix.net/uid-21592001-id-3082675.html [转]plsql developer 使用技巧 Oracle数据库相信已成为很多企 ...
- 【MySQL】为什么SQL会这么慢
建表 CREATE TABLE `ts_ab` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL, `b` varchar(20) CHARACTER ...
- 【转载】通过sql server 连接mysql
http://www.cnblogs.com/goole/p/5291286.html 1.在SQL SERVER服务器上安装MYSQL ODBC驱动; 驱动下载地址:http://dev.mysql ...
随机推荐
- nodejs常用命令
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 1.npm install m ...
- oracle创建默认表空间---重要
当oracle创建数据库后,sys创建用户时还要有默认表空间.不创建默认表空间在导如项目时会有些数据表导入不成功! 由于时间仓促以截屏为例 之后会在刚刚那个空文件生成一个文件 ----------- ...
- P2339 提交作业usaco(区间dp)
P2339 提交作业usaco 题目背景 usaco 题目描述 贝西在哞哞大学选修了 C 门课,她要把所有作业分别交给每门课的老师,然后去车站和同学们一起回家.每个老师在各自的办公室里,办公室要等他们 ...
- redis在linux安装和开机启动和结合php运用方法一
第一部分:安装redis 希望将redis安装到此目录 1 /usr/local/redis 希望将安装包下载到此目录 1 /usr/local/src 那么安装过程指令如下: 1 2 3 4 5 6 ...
- post和get区别,其他答案真的太坑
原理: get和post都是http定义与服务器交互的方法,还有put,delete url是网络上的资源,那么http中的get,post,put,delete对应的就是对这个资源的查,改,增,删四 ...
- LOJ#120. 持久化序列(FHQ Treap)
题面 传送门 题解 可持久化\(Treap\)搞一搞 //minamoto #include<bits/stdc++.h> #define R register #define inlin ...
- Vue知识点小总结1
ES6常用语法 变量的定义 let定义变量 不会变量提升 有全局作用域和函数作用域,块级作用域{} 不能重复定义 var定义变量 会变量提升 只有全局作用域和函数作用域 能够重复定义 const定义变 ...
- 2017杭电多校第五场Rikka with Subset
Rikka with Subset Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- 数据传递-------@ModelAttribute
package com.wh.handler; /** * @ModelAttribute绑定请求参数到命令对象 * @ModelAttribute一个具有如下三个作用: * * ①绑定请求参数到命令 ...
- 386 Lexicographical Numbers 字典序排数
给定一个整数 n, 返回从 1 到 n 的字典顺序.例如,给定 n =1 3,返回 [1,10,11,12,13,2,3,4,5,6,7,8,9] .请尽可能的优化算法的时间复杂度和空间复杂度. 输入 ...