2015-06-24 33 views
0

因此,我是Angular的新成员,从​​来没有通过Angular与PHP建立过连接。我的角度设置很好。该数据是未来通过,但我似乎无法将它保存到我的数据库使用AngularJS和PHP将数据保存到数据库

这是我的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); 
    } 
} 

>

如果任何人可以指向我正确的方向,我真的很感激它

+0

您是否在config.php文件中启动数据库连接? – Guinn

+0

是的抱歉,我没有添加代码。但连接是 – GY22

+1

如果可以的话,你应该[停止使用'mysql_ *'函数](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php) 。他们不再被维护,并[正式弃用](https://wiki.php.net/rfc/mysql_deprecation)。了解[准备](http://en.wikipedia.org/wiki/Prepared_statement)[声明](http://php.net/manual/en/pdo.prepared-statements.php),并考虑使用PDO ,[这真的不难](http://jayblanchard.net/demystifying_php_pdo.html)。 –

回答

2

你错过了在你的电子邮件上的插入SQL关闭双引号。

应该是;

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

+0

谢谢你是这个问题 – GY22