【发布时间】:2017-04-15 11:06:39
【问题描述】:
我是 AngularJS 和 PHP 新手,我正在尝试将一些数据添加到 MySQL 中。但是 MySQL 表显示的是空值,而不是我要插入的数据。
HTML:
<form data-ng-controller="myCtrl">
<label for="roomName">Room Name: </label>
<input type="text" name="roomName" data-ng-model="roomName" id="roomName" />
<br />
<label for="maxPerson">Maximum Person: </label>
<input type="text" name="maxPerson" data-ng-model="maxPerson" id="maxPerson" />
<button type="submit" class="btn btn-default" data-ng-click="addRoom()">Add</button>
</form>
app.js(控制器)
app.controller("myCtrl", function ($scope, $http) {
"use strict";
$scope.addRoom = function () {
$http.post("add_library_room.php", {'roomName': $scope.roomName, 'maxPax': $scope.maxPerson})
.then(function (response) {
$scope.msg = "Room is inserted into database.";
});
};
});
add_library_room.php(插入数据)
<?php
define("HOSTNAME","localhost");
define("USERNAME","root");
define("PASSWORD","");
define("DATABASE", "booking_db");
$dbhandle=new mysqli(HOSTNAME, USERNAME, PASSWORD, DATABASE) or die ("Unable to Connect to the Database");
$data=json_decode(file_get_contents("php://input"));
$room_Name=$dbhandle->real_escape_string($data->roomName);
$max_Pax=$dbhandle->real_escape_string($data->maxPax);
$query="INSERT INTO library_discussion_room (room_name, max_pax) VALUES ('$room_Name', '$max_Pax')";
$dbhandle->query($query);
?>
phpMyAdmin MySQL 数据库(我插入的值为空): Image Link
我不知道我做错了什么。希望你们能帮我解决这个问题。谢谢。
【问题讨论】:
-
它是否显示您将数据发布到 php 文件的成功消息?对我来说,看起来你甚至没有从角度发送正确的数据。 (至少在 Ionic fw 中我使用 {key: value} 语法而不是 {"key":value},但也许没关系,只是一个提示)。尝试打印你的 $data 数组。
-
我可以收到我的成功信息。但是看起来数据是空的。
-
print_r 你的 $data 变量,然后 console.log 'response' 参数。
-
控制台中显示以下消息: 注意:未定义的属性:stdClass::$room_name in C:\xampp\htdocs\BookingSystem\add_library_room.php 第 8 行 注意:未定义的属性:stdClass:: C:\xampp\htdocs\BookingSystem\add_library_room.php 中的 $max_pax 第 9 行 stdClass Object ( )
-
我仍然认为,您将空属性传递给您的 php 文件。
标签: php mysql angularjs http-post