編輯:謝謝大家的非常快速的答案!我一直在這一段時間,試圖找出爲什麼$ 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,我幾乎忘記了一切。 –