PHP表单详细信息不存储在mysql中
我正在AngularJS中创建一个表单,使用它我必须在phpMyAdmin(mysql)中存储个人详细信息。但是,当我填写表格后点击提交按钮时,数据库中没有添加详细信息。请任何人帮助我解决此问题 HTML页面代码: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>
<!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代码使用了与给出的相同的代码