- جمعه 24 مهر 1405 ساعت 01:00
- 3.1.9
- کامل شده
- منقضی شده
Database Helper Methods ابزارهایی برای دریافت اطلاعات وضعیت اتصال و جدولها، ساخت رشتههای SQL متداول و بررسی نتیجه عملیات فراهم میکنند. این متدها در کنار Query Builder به عیبیابی و نوشتن کد دیتابیس کمک میکنند.
ساختار و API اصلی
insert_id() شناسه درجشده را میدهد، affected_rows() تعداد ردیفهای تغییرکرده را برمیگرداند، last_query() آخرین SQL را نمایش میدهد، count_all() تعداد ردیفهای جدول را میشمارد، table_exists() وجود جدول را بررسی میکند و field_exists() وجود ستون را میسنجد.
نمونه استفاده
$id = $this->db->insert_id();
$affected = $this->db->affected_rows();
$exists = $this->db->table_exists('products');
$hasSku = $this->db->field_exists('sku', 'products');نکته مهم
در Production، خروجی last_query() را بدون حذف دادههای حساس در اختیار کاربر قرار ندهید. برای گزارشگیری، Log کنترلشده و بدون مقادیر محرمانه ثبت کنید.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
متدهای کمکی دیتابیس
| متد یا مفهوم | کاربرد |
|---|---|
insert_id() | شناسه آخرین درج. |
affected_rows() | تعداد ردیفهای متاثر. |
count_all() | تعداد کل ردیفهای جدول. |
table_exists() و field_exists() | بررسی وجود جدول و ستون. |
list_tables() و list_fields() | فهرست جدولها و ستونها. |
last_query() و version() | آخرین Query و نسخه دیتابیس. |
نکات عملی برای دیتابیس
پیش از استفاده در محیط واقعی، Driver و نسخه موتور دیتابیس را با قابلیتهای موردنیاز تطبیق دهید. Queryهای دارای ورودی کاربر باید Binding داشته باشند، عملیات چندمرحلهای باید در Transaction قرار بگیرند و برای Queryهای پرتکرار، Index و Execution Plan بررسی شود. تعداد Queryها و حجم Result نیز روی حافظه و زمان پاسخ اثر دارد.
برای عیبیابی، SQL تولیدشده، تعداد ردیفهای متاثر و زمان اجرا را در محیط توسعه ثبت کنید. در Production اطلاعات محرمانه را از Log حذف کنید و خطاهای دیتابیس را به کاربر نشان ندهید. اگر ساختار جدول تغییر میکند، تغییر را نسخهبندی و پیش از اجرا Backup بگیرید.
در بازبینی کد، ترتیب و نتیجه متدهای insert_id()، affected_rows()، count_all()، table_exists() و field_exists() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.