我对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();
?>
控制台每次都告诉我"成功",即使使用不同的方法,但DB没有获得额外的数据。谁能告诉我怎么了?为什么它说成功,但没有将数据添加到数据库?
Thanks in advance
正如@gaurav提到的,在SQL插入语句中有一个错误
$sql = "INSERT INTO betriebsmodus (Modus, Parzelle) VALUES('"。美元的价值。"、"。包裹。")"美元;
在php中,您需要使用点连接操作和单引号将字符串值插入数据库。
它一直打印成功,因为在console.log中你总是打印硬编码的成功。而是打印console.log(response);因此,您将了解后端ajax调用发生了什么。