Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara Menentukan Kejayaan Pertanyaan dalam CodeIgniter: Mengapa Pertanyaan Kemas Kini Saya Tidak Mengembalikan Apa-apa?

Cara Menentukan Kejayaan Pertanyaan dalam CodeIgniter: Mengapa Pertanyaan Kemas Kini Saya Tidak Mengembalikan Apa-apa?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-31 03:02:02904semak imbas

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

Mengesan Kejayaan Pertanyaan dalam Codeigniter

Apabila melaksanakan pertanyaan pangkalan data, adalah penting untuk menentukan sama ada ia berjaya atau tidak. Dalam kes anda, pertanyaan kemas kini dalam kaedah pengawal padam tidak mengembalikan apa-apa, walaupun selepas perubahan pada pangkalan data. Untuk menyelesaikan isu ini, ikut garis panduan ini:

1. Fungsi Pengawal yang Dipertingkatkan (Padam Lembut)

Elakkan menghantar ID pengguna melalui URL atas sebab keselamatan. Sebaliknya, gunakan $_POST untuk memindahkan data semasa penulisan data. Fungsi pengawal yang disemak seharusnya kelihatan seperti ini:

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. Kaedah Model Dipertingkat

Lakukan pertanyaan dalam model sahaja. Semak proses pertanyaan pada berbilang titik kerana pertanyaan tidak boleh mempunyai ralat sintaks tetapi masih tidak membuat perubahan pada pangkalan data.

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;
}

Dengan mengikuti garis panduan ini, anda boleh menentukan kejayaan pertanyaan pangkalan data anda dan mengendalikan dengan berkesan kedua-dua senario berjaya dan tidak berjaya sewajarnya.

Atas ialah kandungan terperinci Cara Menentukan Kejayaan Pertanyaan dalam CodeIgniter: Mengapa Pertanyaan Kemas Kini Saya Tidak Mengembalikan Apa-apa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn