- سهشنبه 28 مهر 1405 ساعت 10:00
- 3.1.9
- کامل شده
- منقضی شده
Database Utility Class ابزارهای مدیریتی مانند فهرست کردن دیتابیسها، ساخت Backup، خروجی CSV یا XML و عملیات نگهداری جدول را ارائه میکند. این قابلیتها بیشتر برای ابزارهای مدیریتی، نصب و نگهداری به کار میروند.
ساختار و API اصلی
list_databases() دیتابیسهای قابل مشاهده را برمیگرداند، csv_from_result() و xml_from_result() نتیجه Query را به فرمت خروجی تبدیل میکنند، backup() نسخه پشتیبان میسازد و بسته به Driver متدهایی برای Optimize یا Repair جدول وجود دارد.
نمونه استفاده
$this->load->dbutil();
$query = $this->db->query('SELECT id, name FROM products');
$csv = $this->dbutil->csv_from_result($query);
$backup = $this->dbutil->backup(array('tables' => array('products')));نکته مهم
Backup دیتابیس را در مسیر عمومی وب قرار ندهید. خروجیهای حجیم را در درخواست HTTP تولید نکنید و مجوزهای کاربر اجراکننده را محدود نگه دارید.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
متدهای Database Utility
| متد یا مفهوم | کاربرد |
|---|---|
backup() | ساخت نسخه پشتیبان. |
csv_from_result() | تبدیل نتیجه Query به CSV. |
xml_from_result() | تبدیل نتیجه به XML. |
list_databases() | فهرست دیتابیسها. |
optimize_table() | درخواست بهینهسازی جدول در Driver پشتیبانیشده. |
repair_table() | درخواست Repair در Driver پشتیبانیشده. |
نکات عملی برای دیتابیس
پیش از استفاده در محیط واقعی، Driver و نسخه موتور دیتابیس را با قابلیتهای موردنیاز تطبیق دهید. Queryهای دارای ورودی کاربر باید Binding داشته باشند، عملیات چندمرحلهای باید در Transaction قرار بگیرند و برای Queryهای پرتکرار، Index و Execution Plan بررسی شود. تعداد Queryها و حجم Result نیز روی حافظه و زمان پاسخ اثر دارد.
برای عیبیابی، SQL تولیدشده، تعداد ردیفهای متاثر و زمان اجرا را در محیط توسعه ثبت کنید. در Production اطلاعات محرمانه را از Log حذف کنید و خطاهای دیتابیس را به کاربر نشان ندهید. اگر ساختار جدول تغییر میکند، تغییر را نسخهبندی و پیش از اجرا Backup بگیرید.
در بازبینی کد، ترتیب و نتیجه متدهای backup()، csv_from_result()، xml_from_result()، list_databases() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.