- سهشنبه 28 مهر 1405 ساعت 20:00
- 3.1.9
- کامل شده
- منقضی شده
Database Driver Reference رفتار و متدهای پایه Driverهای دیتابیس را توضیح میدهد. CodeIgniter برای پشتیبانی از موتورهای مختلف، یک لایه مشترک فراهم میکند و Driver مسئول تبدیل عملیات عمومی به SQL و رفتار مخصوص موتور مقصد است.
ساختار و API اصلی
متدهای عمومی مانند platform()، version()، escape()، query()، insert_id() و affected_rows() از طریق اتصال قابل دسترسی هستند. بعضی قابلیتها مانند نوع داده، قفلگذاری، LIMIT و نحوه تولید شناسه خودکار ممکن است بین MySQL، PostgreSQL، SQLite و SQL Server تفاوت داشته باشند.
نمونه استفاده
echo $this->db->platform();
echo $this->db->version();
$escaped = $this->db->escape($value);
$query = $this->db->query('SELECT * FROM products WHERE sku = ?', array($sku));نکته مهم
اگر برنامه باید روی چند موتور دیتابیس اجرا شود، Queryهای خام و Migrationها را روی همه موتورهای هدف تست کنید. نام Driver را با نسخه افزونه PHP تطبیق دهید.
مطالعه مرتبط
برای ادامه مطالعه، MVC، کوئری، ترنزکشن را ببینید.
رفتار Driverها
| متد یا مفهوم | کاربرد |
|---|---|
platform() | نام موتور دیتابیس. |
version() | نسخه موتور. |
escape() | Escape مقدار بر اساس Driver. |
insert_id() | شناسه درجشده. |
affected_rows() | تعداد ردیفهای متاثر. |
capabilities | قابلیتهای وابسته به موتور و Driver. |
portability | تفاوتهای SQL میان موتورهای مختلف. |
نکات عملی برای دیتابیس
پیش از استفاده در محیط واقعی، Driver و نسخه موتور دیتابیس را با قابلیتهای موردنیاز تطبیق دهید. Queryهای دارای ورودی کاربر باید Binding داشته باشند، عملیات چندمرحلهای باید در Transaction قرار بگیرند و برای Queryهای پرتکرار، Index و Execution Plan بررسی شود. تعداد Queryها و حجم Result نیز روی حافظه و زمان پاسخ اثر دارد.
برای عیبیابی، SQL تولیدشده، تعداد ردیفهای متاثر و زمان اجرا را در محیط توسعه ثبت کنید. در Production اطلاعات محرمانه را از Log حذف کنید و خطاهای دیتابیس را به کاربر نشان ندهید. اگر ساختار جدول تغییر میکند، تغییر را نسخهبندی و پیش از اجرا Backup بگیرید.
در بازبینی کد، ترتیب و نتیجه متدهای platform()، version()، escape()، insert_id() را بررسی کنید. نام متد بهتنهایی تضمین نمیکند ورودی معتبر یا خروجی امن باشد، بنابراین رفتار هر متد را با تست و مستندات همان نسخه کنترل کنید.