• 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() را بررسی کنید. نام متد به‌تنهایی تضمین نمی‌کند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.

سایر پست های داکیومنت