2

为什么在 delete_account() 函数的末尾调用 get_accounts() 函数不起作用?

function get_accounts() {
    require(ROOT_PATH . "inc/database.php");
    try {
        $results = $db->query("SELECT * FROM account");
    } catch (Exception $e) {
        echo ("ERROR: Data could not be retrieved from the database." . $e);
        exit;
    }
    $accounts = $results->fetchall(PDO::FETCH_ASSOC);
    return $accounts;
}



if(isset($_GET['action']) && ($_GET['action'] == 'delete_account')) {


            require("config.php");
            require("database.php");

            $deleteAccount = $_POST['account'];


            try {
                $results = $db->prepare("DELETE FROM account WHERE account_id_PK = ?");
                $results->bindValue(1, $deleteAccount);
                $results->execute();
            } catch(Exception $e) {
                echo "ERROR: Data could not be removed from the database. " . $e;
                exit;
            }
            echo($deleteAccount);
get_accounts();
};

基本上,我想运行 delete_accounts() 函数,最后我想运行 get_accounts() 函数,该函数将在删除所选帐户后刷新页面上的帐户列表。无论我尝试什么,我似乎都无法从另一个函数中调用一个函数。

4

1 回答 1

2

使用 try catch 的 finally 部分并删除 ' exit();'

if(isset($_GET['action']) && ($_GET['action'] == 'delete_account')) {

            require("config.php");
            require("database.php");

            $deleteAccount = $_POST['account'];

            try {
                $results = $db->prepare("DELETE FROM account WHERE account_id_PK = ?");
                $results->bindValue(1, $deleteAccount);
                $results->execute();
            } catch(Exception $e) {
                echo "ERROR: Data could not be removed from the database. " . $e;
            }finally{ 
               get_accounts();
            }
            echo($deleteAccount);
}
于 2013-11-03T13:07:18.667 回答