【问题标题】:Search in a SQL database with AngularJS使用 AngularJS 在 SQL 数据库中搜索
【发布时间】:2016-03-24 09:41:13
【问题描述】:

我正在尝试使用 AngularJS 列出 MySQL 数据库的元素。 尽管进行了一些研究,但我找不到在控制器函数中写什么来做到这一点。

更准确地说,我之前在没有 AngularJS 的情况下使用以下方法:

$link = new PDO('mysql:host=localhost;dbname=mygaloo;charset=utf8', 'root', ''); 
$query = $link->query("SELECT * FROM ".$choice." WHERE nom LIKE '%".$request."%' ORDER BY id DESC"); 

这是我当前的代码:

<div ng-app="searchApp" ng-controller="searchController"> 
    <table>
        <tr ng-repeat="x in objects">
            <td>{{ x.name }}</td>
        </tr>
    </table>
</div>

<script>
    var app = angular.module('searchApp', []);
    app.controller('searchController', function($scope) 
    {
        //What should i do here ?
    });
</script>

【问题讨论】:

  • AngularJS 是一个单页应用程序框架:en.wikipedia.org/wiki/Single-page_application ...通常使用 ajax 读取数据...所以在您的控制器中您应该使用 $http docs.angularjs.org/api/ng/service/$http
  • 好的,但是我如何使用 $http 在 SQL 数据库中执行搜索?可以举个例子吗?
  • 如果您将架构拆分为服务器和客户端,服务器 (php) 将执行数据库查询并生成 json 作为对来自客户端 (angularJS) 的 AJAX 请求的响应
  • 我不知道您使用的服务器端技术,但@Meiko 是正确的。 Angularjs在客户端,服务器应该负责从SQL中检索数据。

标签: javascript mysql angularjs


【解决方案1】:

我不确定这是否可行。因为它不应该。

客户端和服务器端编程之间存在明显差异。
Angular 和 jQuery 在客户端或客户端计算机上运行。这意味着,当您执行以下操作时:

$link = new PDO('mysql:host=localhost;dbname=mygaloo;charset=utf8', 'root', ''); 

浏览数据库所需的所有数据都提供给用户。见鬼,你提供了根。这意味着任何人都可以简单地以 root 身份登录到您的数据库,并修改数据库中的所有内容,或者简单地收集所有用户数据。

为确保这一点,您需要编写一些服务器端脚本,并使用 API 向应用程序公开数据。

服务器端代码永远不会暴露给客户端,这使它成为存储密码和连接数据库的好地方。客户端脚本有很多可能性。

  • php
  • nodeJS(服务器上的javascript)
  • 红宝石

只需选择一个,然后开始阅读如何使用它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    • 1970-01-01
    相关资源
    最近更新 更多