- چهارشنبه 22 مهر 1405 ساعت 14:00
- 3.1.9
- کامل شده
- منقضی شده
برای استفاده از دیتابیس در CodeIgniter 3 ابتدا باید یک گروه اتصال در application/config/database.php تعریف کنید. این گروه شامل Driver، میزبان، نام دیتابیس، نام کاربری، گذرواژه، Charset و تنظیمات رفتار اتصال است.
ساختار و API اصلی
اتصال میتواند بهصورت خودکار هنگام شروع برنامه بارگذاری شود یا فقط در Controller یا Model موردنیاز فراخوانی شود. متد database() اتصال پیشفرض را بارگذاری میکند و نام گروه را نیز میتوان به آن داد. برای اتصالهای متعدد، گروه جداگانه تعریف کنید.
نمونه استفاده
$this->load->database();
$analytics = $this->load->database('analytics', TRUE);
$query = $analytics->query('SELECT COUNT(*) AS total FROM events');
$row = $query->row();نکته مهم
اطلاعات اتصال را در فایل عمومی یا مخزن Git منتشر نکنید. در Production خطای دیتابیس را به کاربر نشان ندهید و از Driver مناسب نسخه PHP استفاده کنید.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
تنظیم اتصال دیتابیس
| متد یا مفهوم | کاربرد |
|---|---|
active_group | انتخاب گروه اتصال پیشفرض. |
dbdriver | انتخاب Driver. |
hostname و port | آدرس و Port سرور. |
database و username | نام دیتابیس و کاربر. |
char_set و dbcollat | تنظیم Charset و Collation. |
pconnect | فعال یا غیرفعال کردن اتصال پایدار. |
db_debug | رفتار گزارش خطا در محیط اجرا. |
نکات عملی برای دیتابیس
پیش از استفاده در محیط واقعی، Driver و نسخه موتور دیتابیس را با قابلیتهای موردنیاز تطبیق دهید. Queryهای دارای ورودی کاربر باید Binding داشته باشند، عملیات چندمرحلهای باید در Transaction قرار بگیرند و برای Queryهای پرتکرار، Index و Execution Plan بررسی شود. تعداد Queryها و حجم Result نیز روی حافظه و زمان پاسخ اثر دارد.
برای عیبیابی، SQL تولیدشده، تعداد ردیفهای متاثر و زمان اجرا را در محیط توسعه ثبت کنید. در Production اطلاعات محرمانه را از Log حذف کنید و خطاهای دیتابیس را به کاربر نشان ندهید. اگر ساختار جدول تغییر میکند، تغییر را نسخهبندی و پیش از اجرا Backup بگیرید.
در بازبینی کد، ترتیب و نتیجه متدهای active_group، dbdriver، hostname و port، database و username را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.