【发布时间】:2017-06-14 17:23:42
【问题描述】:
我正在 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);
});
}
});
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";
}
?>
【问题讨论】:
-
你收到错误了吗?
-
没有我得到的错误
-
尝试打印
mysql_error()并发布错误。此外,您应该使用 mysqli 或 PDO,因为不推荐使用 mysql -
停止使用
mysql_*函数!它们已弃用,请改用 MySQLi 或 PDO。并使用准备好的查询来避免如此容易受到 SQL 注入攻击! -
先尝试调试。问题可能是数据库问题,也可能是 POST 请求,也可能是表单本身。