【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 ...
随机推荐
- log4j日志基本配置
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使用这三个组件可以轻松 ...
- 0623-TP框架整理一(下载、入口文件、路由、创建控制器、调用模板、系统常量、命名空间)
一.下载解压后用ThinkPHP(核心)文件 核心文件夹(ThinkPHP)不要改,是作用于全局的,有需要可以改应用目录(Application) 二.创建入口文件: 运行后出现欢迎界面,在说明系统自 ...
- 微信小程序获取自定义属性值
写小程序的时候用到了自定义属性,特地来记录一下 特别是这个坑,必须得说一说 wxml <view class='box' bindtap='getValue'> <view clas ...
- Linux学习系列八:操作网口
一些相对高性能的单片机会带以太网接口,网口在MCU里算是比较复杂的外设了,因为它涉及到网络协议栈,通常情况下网络协议栈会运行在一个RTOS中,所以对普通单片机开发者来说网口使用起来相对难度较大一些.在 ...
- Linux环境下卸载、安装及配置MySQL5.1
Linux环境下卸载原有MySQL5.1数据库,并重新安装MySQL数据库的示例记录. 一.卸载MySQL 查看主机中是否安装了MySQL数据库: [root@RD-viPORTAL- ~]# rpm ...
- 网上商城 Incorrect datetime value: '' for column 'ordertime' at row 1
今天在做商城项目的[提交订单]功能的时候,向数据库插入数据报错:Incorrect datetime value: '' for column 'ordertime' at row 1 public ...
- git初使用的心得
转到Java方向后,版本控制工具也开始以git为主了.由于之前不怎么使用bash,所以目前还是以ui工具,比如sourcetree为主导,但一些简单的操作命令,已经能够快速地使用.sourcetree ...
- Android 新闻app的顶部导航栏,怎么实现动态加载?
TabLayout + viewpager 其中viewpager的适配器要继承FragmentPagerAdapter,要实现动态更新,最主要的是适配器的写法,要在数据发生变化之后清除Fragmen ...
- Android基础TOP5_2:MultiAutoCompleteTextView多文本自动补全文本框
Activity: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln ...
- Memcached通信协议
英文水平很烂,做梦都想着能把英语学习,可以使用一口流利的英文和洋鬼子交流,顺便忽悠下自己的同胞.没有地方学习英语,看还可以,网上有很多关于计算机的英文文献,写还行,说就完全不可能了.在以后的工作中慢慢 ...