Добавить и удалить запрос с помощью Postgres - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь создать 3 страницы, которые связаны между собой.

Страница запросов Удаленная страница Страница принята

Какие в базе данных соответствуют:

prenotaziones prenotazioneAccettate prenotazioneCancellate

Когда пользователь заполняет поля формы, запись вводится в «Страница запроса».И отсюда запросы могут быть приняты или отклонены.И каждый раз, когда запрос принят или отклонен, он удаляется со страницы запроса.

Теперь проблема в том, что, хотя в mysql весь этот процесс работал для меня идеально, на postgres вместо этого единственное, что мой кодделает это удалить из «Запросы» и не вставлять ничего на других страницах.

Это код:

 <td>
        <a href="prenotazioniRichieste.php?delete=<?php echo $id; ?>"onclick="return confirm ('Are you sure?');"><img src="image/cross.png"></a>
    </td>
    <td>
        <a href="prenotazioniRichieste.php?accept=<?php echo $id; ?>"onclick="return confirm ('Are you sure?');"><img src="image/check.png"></a>
    </td>

    </tr>

    <?php
     $i++;
    }
    if(isset($_GET['delete'])){
           $delete_id = $_GET['delete'];
        //   mysqli_query($dbh,"INSERT INTO PrenotazioneCancellate SELECT * FROM Prenotazione WHERE id='$delete_id'");
        //   mysqli__query($dbh,"DELETE FROM prenotaziones WHERE id='$delete_id'");
        // header("location: prenotazioniRichieste.php");


        $sqld1 = "INSERT INTO prenotazioneCancellate SELECT * FROM prenotaziones WHERE id='$delete_id'";
            $resultd1 = $dbh->prepare($sqld1);
            $resultd1->execute();
        $sqld2 = "DELETE FROM prenotaziones WHERE id='$delete_id'";
            $resultd2 = $dbh->prepare($sqld2);
            $resultd2->execute();

    }

    if(isset($_GET['accept'])){
           $accept_id = $_GET['accept'];
       //    mysqli_query($dbh,"INSERT INTO PrenotazioneAccettate SELECT * FROM Prenotazione WHERE id='$accept_id'");
       //    mysqli_query($dbh,"DELETE FROM Prenotazione WHERE id='$accept_id'");
       //    header("location: prenotazioniRichieste.php");
        $sqla1 = "INSERT INTO PrenotazioneAccettate SELECT * FROM prenotaziones WHERE id='$accept_id'";
            $resulta1 = $dbh->prepare($sqla1);
            $resulta1->execute();
        $sqla2 = "DELETE FROM prenotaziones WHERE id='$accept_id'";
            $resulta2 = $dbh->prepare($sqla2);
            $resulta2->execute();
    }
    echo "</table>";
?> 

1 Ответ

0 голосов
/ 04 октября 2018

Первое изменение будет:

$sqld1 = "INSERT INTO \"prenotazioneCancellate\" SELECT * FROM prenotaziones WHERE id='$delete_id'";

секунда будет (если вы используете PDO и подготовленные операторы и не хотите беспокоиться о переменных и sql-инъекциях):

 $sqlQuery = "INSERT INTO public.\"prenotazioneCancellate\" 
                  SELECT * FROM public.prenotaziones 
              WHERE public.prenotaziones.id=:id_to_delete";
 $loStatement = $dbh->prepare($sqlQuery);
 $loStatement->bindValue(':id_to_delete', $delete_id, PDO::PARAM_INT);
 $loStatement->execute();
 $loResult = loStatement->fetchAll();

в postgres ваша база данных может быть распространена в схемах.Вот, например, публичный.Вы можете использовать таблицы с заглавными буквами, но должны избегать их правильным образом.Вы удаляете работу, потому что имя таблицы всегда строчными буквами: prenotaziones

и последнее:

try {
   $sqlQuery = "INSERT INTO public.\"prenotazioneCancellate\" 
                      SELECT * FROM public.prenotaziones 
                  WHERE public.prenotaziones.id=:id_to_delete";
   $loStatement = $dbh->prepare($sqlQuery);
   $loStatement->bindValue(':id_to_delete', $delete_id, PDO::PARAM_INT);
   $loStatement->execute();
   $loResult = loStatement->fetchAll();
}
catch(Exception $e) {
//do something with the error
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...