【问题标题】:Fetch and insert data into mysql using angularjs使用angularjs获取数据并将其插入mysql
【发布时间】:2016-04-27 17:49:55
【问题描述】:

我无法使用 angularjs 和 php 将日期插入 sql server。

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

<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."')");

【问题讨论】:

  • 我不确定数据库连接,我认为是 PHP 错误。你能帮忙吗
  • 如果您分享屏幕截图或控制台内容会很棒??
  • 我在控制台中没有收到任何错误。我是 PHP 新手,所以我不知道它是否有效?
  • 实际上我遵循了这个教程,对他来说它的工作:youtube.com/watch?v=h9KLLXtJZZM

标签: php mysql angularjs database


【解决方案1】:

给你试试这个

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();
?>

【讨论】:

  • 本教程是我找到的最好的教程,它使用简单的 PHP 和 MySQL REST API,允许您使用 AngularJS 进行 CRUD 操作codeofaninja.com/2015/12/angularjs-crud-example-php.html
  • Notice: Trying to get property of non-object in G:\own\MyWebsite\crud\insert.php on line 5 我在尝试你的 php 代码时遇到了这个问题。
【解决方案2】:

您的代码存在三个问题:

  1. 使用 ng-click 执行 $scope 函数时,最佳做法是在使用变量时传入变量。
  2. 由于您的 PHP 控制器需要 JSON,因此您应该形成一个 JSON 对象并在标头中指明它。
  3. .success() 已被弃用。您应该改用 promise .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 
    });
}

【讨论】:

    【解决方案3】:

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

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

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

    现在随心所欲地操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-27
      • 1970-01-01
      • 1970-01-01
      • 2021-02-01
      • 2019-03-05
      相关资源
      最近更新 更多