PHP表单详细信息不存储在mysql中

PHP表单详细信息不存储在mysql中,php,html,mysql,angularjs,Php,Html,Mysql,Angularjs,我正在AngularJS中创建一个表单,使用它我必须在phpMyAdmin(mysql)中存储个人详细信息。但是,当我填写表格后点击提交按钮时,数据库中没有添加详细信息。请任何人帮助我解决此问题 HTML页面代码: <!DOCTYPE html> <html> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"> </script>

我正在AngularJS中创建一个表单,使用它我必须在phpMyAdmin(mysql)中存储个人详细信息。但是,当我填写表格后点击提交按钮时,数据库中没有添加详细信息。请任何人帮助我解决此问题

HTML页面代码:

<!DOCTYPE html>
<html>
<script 
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js">
</script>
<title> Home </title>
<body>

<div ng-app="myapp" ng-controller="myCtrl">
<form>
<br>
<h1 align="left">ID : <input type="text" ng-model="id"></h1>
<h1 align="left">Name : <input type="text" ng-model="name"></h1>

<h1 align="left">Address : <input type="text" ng-model="address"></h1>

<h1 align="left">Phone : <input type="text" ng-model="phone"></h1>

<input type="button" value="Submit" ng-click="insertData()" />
</br>
</form>

<script>
var app = angular.module('myapp',[]);
app.controller('myCtrl', function($scope, $http){

$scope.insertData = function(){
$http.post("insert.php",{
'id':$scope.id, 
'name':$scope.name, 
'address':$scope.address, 
'phone':$scope.phone})
.then(function successCallback(data,status,headers,config) {
console.log(data);
});
}
});

身份证件: 姓名: 地址: 电话:
var-app=angular.module('myapp',[]); app.controller('myCtrl',函数($scope,$http){ $scope.insertData=函数(){ $http.post(“insert.php”{ 'id':$scope.id, 'name':$scope.name, “地址”:$scope.address, 'phone':$scope.phone}) .then(函数successCallback(数据、状态、标题、配置){ 控制台日志(数据); }); } });
PHP代码:insert.PHP

 <?php
 $servername = "localhost";
 $username   = "root";
 $password   = "bulbul";
 $dbname     = "angularjs";

 // Create connection
 $conn = new mysqli($servername, $username, $password, $dbname);
 // Check connection
 if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
 }


 $json = file_get_contents('php://input');
 $php_array = json_decode($json, TRUE);
 $id = $php_array['id'];
 $name = $php_array['name'];
 $address = $php_array['address'];
 $phone = $php_array['phone'];

 $sql = "INSERT INTO employee(id,name,address,phone) VALUES(?,?,?,?)";
 $stmt = $conn->prepare($sql);
 $stmt->bind_param("isss", $id, $name, $address, $phone);
 if ($stmt->execute()) {

  echo "data inserted";
 }
 ?>

使用.then代替.success as.success在最新的angular 1.x版本中被弃用

使用php代码中的die检查任何服务器端问题

为什么表单细节没有添加到数据库中?因为您有以下错误:

$http.post(…)。成功不是一个函数

使用浏览器控制台

问题是
.success
$http success和error方法在Angular 1.x的较旧版本中可用,但它们已被弃用一段时间,并在Angular 1.6中删除。见:

您应该使用
.then()

这就是你需要的

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js">
</script>
<title> Home </title>
<body>

<div ng-app="myapp" ng-controller="myCtrl">
<form>
<br>
<h1 align="left">ID : <input type="text" ng-model="id"></h1>
<h1 align="left">Name : <input type="text" ng-model="name"></h1>

<h1 align="left">Address : <input type="text" ng-model="address"></h1>

<h1 align="left">Phone : <input type="text" ng-model="phone"></h1>

<input type="button" value="Submit" ng-click="insertData()" />
</br>
</form>

<script>
var app = angular.module('myapp',[]);
app.controller('myCtrl', function($scope, $http){

    $scope.insertData = function(){
    $http.post("insert.php",{
    'id':$scope.id, 
    'name':$scope.name, 
    'address':$scope.address, 
    'phone':$scope.phone})
    .then(function successCallback(data,status,headers,config) {
    console.log(data);
    });
    }
    });
    </script>

    </div>
    </body>
    </html>

身份证件: 姓名: 地址: 电话:
var-app=angular.module('myapp',[]); app.controller('myCtrl',函数($scope,$http){ $scope.insertData=函数(){ $http.post(“insert.php”{ 'id':$scope.id, 'name':$scope.name, “地址”:$scope.address, 'phone':$scope.phone}) .then(函数successCallback(数据、状态、标题、配置){ 控制台日志(数据); }); } });
然后是insert.php

 <?php
 $servername = "localhost";
 $username   = "root";
 $password   = "bulbul";
 $dbname     = "angularjs";

 // Create connection
 $conn = new mysqli($servername, $username, $password, $dbname);
 // Check connection
 if ($conn->connect_error) {
 die("Connection failed: " . $conn->connect_error);
 }


 $json = file_get_contents('php://input');
 $php_array = json_decode($json, TRUE);
 $id = $php_array['id'];
 $name = $php_array['name'];
 $address = $php_array['address'];
 $phone = $php_array['phone'];

 $sql = "INSERT INTO employee(id,name,address,phone) VALUES(?,?,?,?)";
 $stmt = $conn->prepare($sql);
 $stmt->bind_param("isss", $id, $name, $address, $phone);
 if ($stmt->execute()) {

  echo "data inserted";
 }
 ?>
停止使用已折旧的函数并停止使用危险代码使用准备好的语句:

<?php
$servername = "localhost";
$username   = "root";
$password   = "";
$dbname     = "angularjs";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}


$data = json_decode(file_get_contents("php://input"));
$id = $data->id;
$name = $data->name;
$address = $data->address;
$phone = $data->phone;

$sql = "INSERT INTO employee(id,name,address,phone) VALUES(?,?,?,?)";
$stmt = $conn->prepare($sql);
$stmt->bind_param("isss", $id, $name, $address, $phone);
if ($stmt->execute()) {

    echo "data inserted";
}
?>


你有错误吗?没有没有错误我正在尝试打印
mysql\u error()
并发布错误。另外,您应该使用mysqli或PDO,因为mysql是不推荐使用
mysql.*
函数的!它们已被弃用,请改用MySQLi或PDO。并使用准备好的查询来阻止SQL注入攻击!首先尝试调试。问题可能是数据库问题、POST请求或表单本身。。。我收到的通知是:(!)通知:试图在第16行获取C:\wamp64\www\homesed\insert.php中非对象的属性。@BleedCode显示哪一行是16?使用我的insert.php代码,因为它只是更改服务器凭据$id=$data->id;姓名$地址=$data->地址$电话=$data->phone;发布您的完整代码,我没有收到任何错误,它在我这方面工作得非常完美@BleedCodeUpdated insert.php代码使用了与给出的相同的代码