Heim >Backend-Entwicklung >PHP-Tutorial >So ermitteln Sie den Abfrageerfolg in CodeIgniter: Warum gibt meine Update-Abfrage nichts zurück?

So ermitteln Sie den Abfrageerfolg in CodeIgniter: Warum gibt meine Update-Abfrage nichts zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 03:02:02970Durchsuche

How to Determine Query Success in CodeIgniter: Why My Update Query Returns Nothing?

Abfrageerfolg in Codeigniter erkennen

Beim Ausführen von Datenbankabfragen ist es entscheidend, festzustellen, ob sie erfolgreich sind oder nicht. In Ihrem Fall gibt die Aktualisierungsabfrage innerhalb der Methode zum Löschen des Controllers nichts zurück, selbst nach Änderungen an der Datenbank. Um dieses Problem zu beheben, befolgen Sie diese Richtlinien:

1. Erweiterte Controller-Funktion (Soft-Delete)

Vermeiden Sie aus Sicherheitsgründen die Weitergabe der Benutzer-ID über die URL. Verwenden Sie stattdessen $_POST, um Daten während des Datenschreibens zu übertragen. Die überarbeitete Controller-Funktion sollte so aussehen:

public function softDeleteUser(): void
{
    $userId = $this->input->post('user_id');
    if (!$userId) {
        add_flash_message('alert', 'Required data not supplied');
    } elseif (!$this->Crm_user_model->update($userId, ['deleted' => true])) {
        add_flash_message('alert', 'Failed to soft delete user');
    } else {
        add_flash_message('info', 'Soft deleted user');
    }
}

2. Erweiterte Modellmethode

Führen Sie Abfragen ausschließlich im Modell durch. Überprüfen Sie den Abfrageprozess an mehreren Stellen, da eine Abfrage zwar keine Syntaxfehler aufweisen, aber dennoch keine Änderungen an der Datenbank vornehmen kann.

public function update(int $userId, array $newData): int
{
    // Prevent modifying the user_id column
    unset($newData['user_id']);

    if ($this->db->update('user_tablename', $newData, ['user_id' => $userId])) {
        $affectedRows = $this->db->affected_rows();
        if ($affectedRows) {
            // Log successful changes if applicable
        }
        return $affectedRows;
    }
    return 0;
}

Durch die Befolgung dieser Richtlinien können Sie den Erfolg Ihrer Datenbankabfragen effektiv bestimmen und abwickeln sowohl erfolgreiche als auch erfolglose Szenarien.

Das obige ist der detaillierte Inhalt vonSo ermitteln Sie den Abfrageerfolg in CodeIgniter: Warum gibt meine Update-Abfrage nichts zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn