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

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