使用 angularjs 获取数据并将其插入 mysql


Fetch and insert data into mysql using angularjs

我无法使用angularjs和php将日期插入sql服务器。

我想知道如何在sql中插入数据并从数据库获取数据。

<body>
    <div ng-app="myapp" ng-controller="empcontroller">
        <form>
            Employe No. <input type="text" ng-model="emp_no" /><br/>
            First Name. <input type="text" ng-model="first_name" /><br/>
            Last Name.  <input type="text" ng-model="last_name" /><br/>
            Department. <input type="text" ng-model="dept_name" /><br/>
            <input type="button" value="submit" ng-click="insertdata()"/> <br/>
        </form> 
    </div>

    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.3/angular.min.js"></script>
    <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.3/angular-route.min.js"></script>    
    <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.3/jquery.min.js"></script>
    <script type="text/javascript">
        var app = angular.module('myapp',[]);
        app.controller('empcontroller', function($scope, $http){
            $scope.insertdata=function(){
                $http.post("insert.php",{'emp_no':$scope.emp_no,'first_name':$scope.first_name,'last_name':$scope.last_name,'dept_name':$scope.dept_name})
                    .success(function(data,status,headers,config){
                        console.log("data insert succesfully");
                    });
            }
        });
    </script>
</body>

PHP代码:

$data = json_decode(file_get_contents("php://input"));
$empno = mysql_real_escape_string($data->emp_no);
$fname = mysql_real_escape_string($data->first_name);
$lname = mysql_real_escape_string($data->last_name);
$dept = mysql_real_escape_string($data->dept_name);
$con = mysql_connect("localhost", "root", "root");
mysql_select_db("company", $con);
mysql_query("INSERT INTO employee('emp_no', 'first_name', 'last_name', 'dept_name')VALUES('".$empno."','".$fname."','".$lname."','".$dept."')");

你去试试这个

.HTML

<div ng-app="myapp" ng-controller="empcontroller">
        <form>
            Employe No. <input type="text" ng-model="emp_no" /><br/>
            First Name. <input type="text" ng-model="first_name" /><br/>
            Last Name.  <input type="text" ng-model="last_name" /><br/>
            Department. <input type="text" ng-model="dept_name" /><br/>
             <button ng-click="postData()">Submit</button><br>
        </form> 
    </div>

控制器:

app.controller('empcontroller', function ($scope, $http) {
/*
* This method will be called on click event of button.
*/
$scope.postData = function () {
    var request = $http({
        method: "post",
        url: window.location.href + "insert.php",
        data: {
            emp_no: $scope.emp_no,
            first_name: $scope.first_name,
            last_name: $scope.last_name,
            dept_name: $scope.dept_name,
        },
        headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
    });
 }
}); 

PHP代码:

<?php
 $postdata = file_get_contents("php://input");
    $request = json_decode($postdata);
    $emp_no = $request->emp_no;
    $first_name = $request->first_name;
    $last_name = $request->last_name;
    $dept_name = $request->dept_name;

$servername = "localhost";
$username = "root";
$password = "root"; //Your User Password
$dbname = "myDB"; //Your Database Name

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
$sql = "INSERT INTO employee (emp_no, first_name, last_name, dept_name)
VALUES ($emp_no, $first_name, $last_name , $dept_name)";
if ($conn->query($sql) === TRUE) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>

代码的三个问题:

    使用
  1. ng-click 执行$scope函数时,最佳做法是在使用变量时传入变量。
  2. 由于您的 PHP 控制器需要 JSON,因此您应该形成一个 JSON 对象并在标头中指示它。
  3. .success()正在被弃用。 您应该改用承诺.then()

.HTML:

<!-- need to pass model in the ng-click function -->
<input type="button" value="submit" ng-click="insertdata(emp_no, first_name, last_name, dept_name)"/>

控制器:

$scope.insertata = function(empNo, firstName, lastName, deptName) {
    //make json payload object
    var payload = {
        emp_no: empNo,
        first_name: firstName,
        last_name: lastName,
        dept_name: deptName
    };
    //pass to API
    $http.post('insert.php', payload, {
        headers: {
            'Content-Type': 'application/json; charset=utf-8'
        }
    }).then(function(data, status, headers, config) {
        //success
    }, function(data, status, headers, config) {
        //an error occurred 
    });
}

好吧,现在使用KKKKKKKK的代码,你需要一个php代码。

要从使用 post 发布到 php 的 json 文件中检索信息,您应该执行以下操作:

$json = file_get_contents('php://input'); 
$obj = json_decode($json); // this will retrieve the json.
现在随心

所欲地操纵。