javascript - 使用 AngularJS 和 PHP 将数据保存到数据库

标签 javascript php angularjs database

所以我是 Angular 的新手,从未通过 Angular 使用 PHP 连接到数据库。我的 Angular 设置很好。数据正在传输,但我似乎无法将其保存到我的数据库

这是我的 html 代码:

<form ng-controller="AppCtrl" name="add_user">
            <div class="modal-header">
                <h3 class="modal-title">Add a user by sending an invite via e-mail</h3>
            </div>
            <div class="modal-body">
                <input type="text" class="form-control" name="user_email" ng-model="user_name" placeholder="Enter a name">
                    <br />
                <input type="text" class="form-control" name="user_name" ng-model="user_email" placeholder="Enter an e-mail adress">
            </div>
            <div class="modal-footer">
                <!-- <button type="" class="btn btn-success" ng-click="add_user()">Invite</button> -->
                <input type="button" class="btn btn-success" name="add_user" value="Invite" ng-click="save_user()">
                <button class="btn btn-warning">Cancel</button>
            </div>
    </form>

这是我的 app.js 代码:

var app = angular.module('AddUser', []);

app.controller('AppCtrl', function($scope, $http){

$scope.save_user = function() {

    $http.post('db.php?action=add_user', 
        {
            'user_name'  : $scope.user_name, 
            'user_email' : $scope.user_email
        }
    )

    .success(function (data, status, headers, config) {
        console.log("The user has been added successfully to the DB");
        console.log(data);
    })

    .error(function(data, status, headers, config) {
        console.log("Failed to add the user to DB ");
    });
}

});

这是我的 php 代码:

<?php 
include('config.php');

//echo ('test' . $_GET['action']);
switch($_GET['action'])  {
    case 'add_user' :
        add_user(); 
        break;
}

/**  Function to add user to db **/
function add_user() {

    $data = json_decode(file_get_contents("php://input")); 
    $user_name      = $data->user_name;    
    $user_email     = $data->user_email;

   print_r($data);

    $qry = 'INSERT INTO tblUser(user_name, user_email) VALUES ("' . $user_name  . '","' . $user_email . ')';

    echo ($qry);

    $qry_res = mysql_query($qry);
    if ($qry_res) {
        $arr = array('msg' => "User added successfully!!!", 'error' => '');
        $jsn = json_encode($arr);
        // print_r($jsn);
    } 
    else {
        $arr = array('msg' => "", 'error' => 'Error in inserting record');
        $jsn = json_encode($arr);
        // print_r($jsn);
    }
}

?>

如果有人能指出我正确的方向,我将非常感激

最佳答案

您在插入 SQL 时的电子邮件中缺少右双引号。

应该是;

$qry = 'INSERT INTO tblUser(user_name, user_email) VALUES ("' . $user_name . '","' . $user_email . '")';

关于javascript - 使用 AngularJS 和 PHP 将数据保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31026997/

相关文章:

PHP mySQL - 将新记录插入表中,主键自动递增

angularjs - asp.net web api 使用 angularJS 调用自定义方法

angularjs - 检测用户是否使用 google chrome 的自动填充选项填写表单

javascript - 哪个javaScript框架可以跨域?

javascript - 将数据保存到 Syncano Angular 应用程序

php - Xcode和PHP中的SHA1具有不同的结果

html - Firefox 单选按钮不检查?

javascript - 为什么设置视频元素 srcObject 在 Vue.js 应用程序中不起作用

javascript - XMLHttpRequest:文档元素后的垃圾

php - 如何在jquery中使用Ajax传递带有值的数组并在Php页面中获取值