setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $fpdo->exec("PRAGMA foreign_keys = OFF;"); [$clause, $params] = rbac_client_filter($tokenRec); $delStmt = $fpdo->prepare("DELETE FROM client WHERE NOT ($clause)"); foreach ($params as $k => $v) $delStmt->bindValue($k, $v); $delStmt->execute(); $fpdo->exec("DELETE FROM client_answer WHERE clientCode NOT IN (SELECT clientCode FROM client)"); $fpdo->exec("DELETE FROM completed_questionnaire WHERE clientCode NOT IN (SELECT clientCode FROM client)"); // Remove sensitive tables that non-admin users should never receive foreach (['users', 'admin', 'supervisor', 'coach'] as $tbl) { $fpdo->exec("DELETE FROM $tbl"); } $fpdo = null; $plain = file_get_contents($tmpFilter); } finally { @unlink($tmpFilter); } } $sessionKey = hkdf_session_key_from_token($token); $out = aes256_cbc_encrypt_bytes($plain, $sessionKey); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="questionnaire_database"'); header('Content-Length: ' . strlen($out)); echo $out;