Я хочу обновить таблицу MySQLi achievements
через PHP. Приложение написано на AngularJS и измеряет различные статистические данные. Когда цель достигнута, я отправляю информацию в PHP-скрипт, используя AngularJS $http.post
. Затем PHP должен обработать информацию и соответствующим образом обновить мою таблицу. $http.post
возвращает сообщение об успехе, но таблица не обновляется. Я уверен, что информация о соединении с базой данных верна.
Моя функция AngularJS $scope.updatePhp
с использованием $http.post
:
$scope.updatePhp = function(table, column, value, whereColumn, whereValue) {
$http.post(
"update-data.php", {
'table': table,
'column': column,
'value': value,
'whereColumn': whereColumn,
'whereValue': whereValue
}
);
}
Моя функция AngularJS $scope.updatePhp
без использования ярлыка .post
:
$scope.updatePhp = function(table, column, value, whereColumn, whereValue) {
console.log("Updating. Table: " + table + ", column: " + column + ", value: " + value + ", where: " + whereColumn + ", whereValue: " + whereValue);
$http({
method: 'POST',
url: 'update-data.php',
data: { table: table.toString(), column: column.toString(), value: value.toString(), whereColumn: whereColumn.toString(), whereValue: whereValue.toString() },
headers: { 'Content-Type' : 'application/x-www-form-urlencoded; charset=UTF-8' }
}).then(function successCallback(response) {
console.log("Success.");
}, function errorCallback(response) {
console.log("Error.");
});
}
Весь мой PHP-файл 'update-data.php`:
<?php
//CORS header stuff
header("Access-Control-Allow-Origin: *");
//PHP posted info
$info = file_get_contents('php://input');
//Update the table
$hostname_DB = "databaseHost";
$database_DB = "databaseName";
$username_DB = "databaseUser";
$password_DB = "databasePass";
$portnum_DB = "databasePort";
$mysqli = mysqli_connect($hostname_DB, $username_DB, $password_DB, $database_DB, $portnum_DB ) or die(mysqli_error());
$table = $info->table;
$column = $info->column;
$value = $info->value;
$whereColumn = $info->whereColumn;
$whereValue = $info->whereValue;
$query = "UPDATE '$table' SET '$column' = '$value' WHERE '$whereColumn' = '$whereValue' ";
$mysqli->query($query) or die(mysqli_error());
?>
Я использую PHP error_log и получаю эту ошибку для каждой переменной table
, column
, value
и т. Д.:
PHP Notice: Trying to get property 'table' of non-object in /update-data.php on line 16
.
Определенно, что-то не так с тем, как публикуется информация, или с тем, как извлекается опубликованная информация, а не с SQL.
Заранее благодарю за любую помощь, которую вы можете оказать в решении этой ситуации!