如何確定 CodeIgniter 中的查詢是否成功:為什麼我的更新查詢不傳回任何內容?

Mary-Kate Olsen
發布: 2024-10-31 03:02:02
原創
903 人瀏覽過

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

在 Codeigniter 中偵測查詢成功

執行資料庫查詢時,確定它們是否成功至關重要。在您的情況下,刪除控制器方法中的更新查詢不會傳回任何內容,即使在變更資料庫之後也是如此。要解決此問題,請遵循以下準則:

1.增強控制器功能(軟體刪除)

出於安全原因,請避免透過URL 傳遞使用者ID 。相反,在資料寫入期間使用 $_POST 傳輸資料。修改後的控制器函數應如下:

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.增強模型方法

僅在模型中執行查詢。多點檢查查詢過程,因為查詢可以沒有語法錯誤,但仍然不會對資料庫進行任何更改。

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;
}
登入後複製

透過遵循這些準則,您可以有效地確定資料庫查詢是否成功並處理相應的成功和不成功的場景。

以上是如何確定 CodeIgniter 中的查詢是否成功:為什麼我的更新查詢不傳回任何內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!