Удаление записей из базы данных и сохранение их в файл — PHP

#php #mysql #sql

#php #mysql #sql

Вопрос:

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

Я могу только просматривать или удалять их

 <?php

    session_start();

    include 'connessione.php';

    $id = $_SESSION['id'];

    $query_string = "SELECT * FROM utenti ORDER BY id DESC LIMIT 50";
    $query = mysqli_query($connessione, $query_string);

    ?>
    <?php

    while($row = mysqli_fetch_assoc($query)){ ?>

    <?php echo $row['id'] ;?>

    <?php } ?>
  

понимая этот процесс, я могу удалять данные в своей БД, но на всякий случай сохраняю локальную копию

Комментарии:

1. Вы используете MySQL или MS SQL Server? (Этот запрос не будет выполняться для обоих.)

2. @jarlh mysql с phpmyadmin, сборка на php

Ответ №1:

Вы могли бы сохранить эти результаты в массиве JSON.

 <?php

    //Start the session
    session_start();

    //Include connection
    include 'connessione.php';

    //Get user ID
    $id = $_SESSION['id'];

    //Query to get stuff from database
    $query_string = "SELECT * FROM utenti ORDER BY id DESC LIMIT 50";
    $query = mysqli_query($connessione, $query_string);

    //Get results
    $results = mysqli_fetch_assoc($query);

    //Make that into a JSON array
    $results = json_encode( $results );

    //Put those results in a file (create if file not exist)
    $fileName = 'backup_file_' . time() . '.txt';
    $file = fopen( $fileName , 'a'  );
    fwrite( $file, $results );
    fclose( $file );

    //Delete the rows that you just backed up
    $query_delete = "DELETE FROM utenti ORDER BY id DESC LIMIT 50";
    mysqli_query( $connessione, $query_delete );

?>
  

например, если ваша таблица выглядит следующим образом:

 | id | name | email_address |
|---- ------ ---------------|
| 1  | dave | dave@test.com |
| 2  | emma | emma@test.com |
| 3  | mark | mark@test.com |
 ---- ------ --------------- 
  

ваш файл резервной копии будет выглядеть следующим образом:

 [{"id":1,"name":"dave","email_address":"dave@test.com"},{"id":2,"name":"emma","email_address":"emma@test.com"},{"id":3,"name":"mark","email_address":"mark@test.com"}]
  

Комментарии:

1. файл резервной копии отлично работает, но не удаляет записи в моей таблице

2. да, и эта работа очень идеальна, но во второй части скрипта ничего не удаляется из моей таблицы

3. Предупреждение: mysqli_query() ожидает как минимум 2 параметра, 1 из которых указан в /Applications/MAMP/htdocs/PSW/home.php в строке 31

4. @user11317164, я это исправил. Попробуйте еще раз.

5. сгенерированная ошибка: $query_delete = «УДАЛИТЬ ИЗ utenti ORDER ПО id DESC LIMIT 50»; mysqli_query( $query_delete );

Ответ №2:

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