Невозможно перенести данные из таблицы в другой mysql php angular - PullRequest
0 голосов
/ 31 октября 2019

я хочу перенести данные из таблицы в архивную таблицу, но когда я нажимаю кнопку отправки, ничего не происходит

это моя кнопка отправки:

<button type="button" ng-click="move(name.id)" class="btn btn-info btn-l">Submit</button>

и это мой Angularjscode:

$scope.move = function(id){
if(confirm("Are you sure you want to move it?"))        
{
$http({
method:"POST",
url:"insert.php",
data:{'id':id, 'action':'move'}

    }).success(function(data){
            $scope.success = true;
            $scope.error = false;
            $scope.successMessage = data.message;
            $scope.fetchData();
        }); 
    }
};

это мой php-код в insert.php:

include('database_connection.php');

$form_data = json_decode(file_get_contents("php://input"));

$error = '';
$message = '';
$validation_error = '';
$first_name = '';
$last_name = '';

if($form_data->action == "move")
{
    $query = "
    INSERT INTO archived
    SELECT * FROM infos
    DELETE FROM infos
    ";
    $statement = $connect->prepare($query);
    if($statement->execute())
    {
        $output['message'] = 'Data moved';
    }
}

, когда я редактирую свой запрос, чтобы он выглядел так:

$query = "
DELETE FROM infos
";

все работает нормально, и данные в таблице будут удалены !!

так что кто-нибудь может сказать мне, что мне не хватает или что я делаю неправильно?

спасибои если вам нужно больше информации о моем коде, просто спросите, какую часть вы хотите знать

1 Ответ

1 голос
/ 31 октября 2019

Ваш запрос неверен;

INSERT INTO archived
SELECT * FROM infos
DELETE FROM infos

Чтобы выполнить два запроса, необходимо добавить точку с запятой между операторами в редакторе или командной строке.

INSERT INTO archived SELECT * FROM infos; DELETE FROM infos;

Однако, подготовленооператор может выполнить только один запрос MySQL. Вы можете подготовить столько утверждений, сколько хотите в разных переменных:

$stmtCopy = $sql->prepare("INSERT INTO archived SELECT * FROM infos");
$stmtDelete = $sql->prepare("DELETE FROM infos");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...