我对AngularJs完全不熟悉,但我正在努力学习它,因为它看起来很酷。但是,我正在尝试将AngularJS中的数据放入我的数据库中,为此,我阅读了一些教程并尝试了以下内容:
ctrl.js
var app = angular.module('controller', []);
app.controller('controleCtrl', function($scope, $http){
"use strict";
$scope.value = 0;
$scope.parcel = 1;
postData();
function postData(){
$http({
method: 'POST',
url: 'http://192.168.1.35/updateModus.php',
data: {
'value': $scope.value,
'parcel': $scope.parcel
}
})
.then(function(response){
console.log("Success");
//success
},
function(response){
console.log("failed");
//failed
})
;
}
updateModus.php
<?php
$servername = 172.0.0.1
$username = "root";
$password = "";
$dbname = "uebergabestation";
$value = $_POST['value'];
$parcel = $_POST['parcel'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO betriebsmodus (Modus, Parzelle) VALUES (" + $value + ", " + $parcel +")";
if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}
$conn->close();
?>
控制台每次都告诉我&#34;成功&#34;,即使使用不同的方法,但数据库也没有获得额外的数据。谁能告诉我什么是错的?为什么说成功而不是将数据添加到数据库?
提前致谢
答案 0 :(得分:1)
正如@gaurav所提到的,sql insert语句中有一个错误
$ sql =&#34; INSERT INTO betriebsmodus(Modus,Parzelle)VALUES(&#39;&#34;。$ value。&#34;&#39;,&#39;&#34;。 $ parcel。&#34;&#39;)&#34;;
在php中,您需要使用点连接操作和单引号将字符串值插入到DB中。
它继续打印成功,因为在console.log中,您始终打印硬编码的成功。而是打印console.log(响应);所以你会知道后端ajax调用发生了什么。