编辑:谢谢大家的非常快速的答案!我一直在这一段时间,试图找出为什么$ id被识别,为什么字符串不是。现在看到明显的答案,我感到有点无聊,但让我感到欣慰的是让它工作。PHP代码无法识别某些值
我很抱歉,如果这已被回答之前,我已经找了几个小时,并找不到类似的东西,帮助我弄清楚这一点。
我想用新信息更新设备数据库中的一行。问题是,php文件只能识别$data->devID;
而没有别的。
如果我有类似 $sql = "UPDATE devices SET devName = 'static test string', description = 'static test string' WHERE devID = $id";
具有正确ID的条目将在我的数据库表中更新就好了。
如果我尝试 $sql = "UPDATE devices SET devName = $name, description = $desc WHERE devID = $id";
它不起作用。
我哪里错了?
HTML:
<div data-ng-repeat="info in deviceInfo">
<form class="deviceInfo">
<h2>Device ID: {{info.devID}}</h2>
<p>Device Name:</p>
<input type="text" data-ng-model="info.devName">
<p>Device Description:</p>
<textarea data-ng-model="info.description"></textarea>
<p>Device Available: {{info.isAvailable}}</p>
<input type="submit" name="Update" value="Update" data-ng-click="updateInfo(info.devID, info.devName, info.description)">
</form>
</div>
updateDeviceInfo.php:
<?php
$data = json_decode(file_get_contents("php://input"));
include('config.php');
$id = $data->devID;
$name = $data->devName;
$desc = $data->description;
$sql = "UPDATE devices SET devName = $name, description = $desc WHERE devID = $id";
$qry = $conn->query($sql);
$data = $qry;
$sql = "SELECT * FROM devices";
$qry = $conn->query($sql);
$data = array();
if($qry->num_rows > 0){
while($row = $qry->fetch_object()){
$data[] = $row;
}
}else {
$data[] = null;
}
$conn->close();
echo json_encode($data);
controller.js:
$scope.updateInfo = function($paramID, $paramName, $paramDesc){
console.log($paramID);
console.log($paramName);
console.log($paramDesc);
$scope.dataOneTest = {
devID: $paramID,
devName: $paramName,
description: $paramDesc
};
console.log($scope.dataOneTest.devID);
$http.post('./js/updateDeviceInfo.php', {'devID': $paramID, 'devName': $paramName, 'description': $paramDesc})
.success(function(data){
$scope.results = data;
})
.error(function(err){
$log.error(err);
})
}
谢谢你,我会阅读所有这些提醒自己正确的做事方式。我从一个很长的休息时间回到php,我几乎忘记了一切。 –