ما در این مقاله فقط به بحث sql server می پردازیم. در سالیان پیش در یکی از پروژه های یک شرکت نیاز شد که از دستگاه ورود و خروج نیز به صورت آنلاین گزارش گیری شود. ولی متاسفانه این دستگاه با زبان برنامه نویسی دلفی بود و هیچگونه api برای فریم ورک لاراول و حتی زبان php وجود نداشت. برای همین ما به صورت آنلاین باید از دیتابیس این دستگاه که روی یک سرور ویندوز 2008 وجود داشت استفاده می کردیم.
یک سری نیازمندی و زیرساخت مورد نیاز php بود که در سرور خود ما باید اضافه می شد که اگر برای ویندوز نیاز دارید می توانید از لینک ذیل استفاده کنید
loading the php sql driver
برای آموزش راه اندازی نیز از لینک ذیل استفاده کنید
How to enable MS SQL server access in php
پس از انجام تنظیمات در لینک های یاد شده شما باید connection ارتباط دیتابیس خود را فایل config/database.php ایجاد کنید این پیش فرض خود لاراول می باشد
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
],
مثال عملی ارتباط با sql server در لاراول
'sqlsrv' => [
'driver' => 'sqlsrv',
'host' => 'M-DC', // نام سرور در شبکه محلی : نکته برای سرور خارجی آی پی وارد شود
'database' => 'IODBR', // نام دیتابیس
'username' => 'sar', // نام کاربری
'password' => '12345678', // پسورد
'charset' => 'utf8',
'prefix' => '',
],
نکته : حتما مطمئن شوید که نام کاربری و پسورد ساخته شده شما در sql server وجود داشته باشد و از اتصال پیش فرض کاربری ویندوز در sql server استفاده نکنید.
خب تا اینجای کار ما بدون مشکل کانکشن خود را ساخته ایم الان باید از این ارتباط ساخته شده استفاده کنیم و دیتای لازم را واکشی کنیم به مثال ذیل توجه کنید
$query = DB::connection('sqlsrv')->select('select * from table1');
var_dump($query);
مثال دیگر از این ارتباط که عملیات آپدیت را در جدول table1 برای فیلدهای name و family به شرط برابر بودن id انجام می دهد.
DB::connection('sqlsrv')->update("update tabel1 set name='".$request->input('name')."', family='".$request->input('family')."' where id =".$id."");
مثال از حذف sql server با لاراول
DB::connection('sqlsrv')->delete("DELETE FROM table1 WHERE id=".$id."");
آموزش لاراول (laravel) دوره جامع پروژه محور ساخت فروشگاه اینترنتی
با سلام وقت بخیر دقیقا عین کارهای این صفحه را انجام میدم اما خطای Microsoft odbc driver17 دارم و کانکت نمی شود با تشکر
از این لینک درایورتون رو دانلود و نصب کنید بعد خطا رفع میشه
https://learn.microsoft.com/en-gb/sql/connect/odbc/microsoft-odbc-driver-for-sql-server?view=sql-server-ver16
با سلام وقت بخیر نصب کردم ورژن 17 و 18 رو بازم همین خطای Microsoft odbc driver17 می دهد
ببینید درایور فعلی آیا مناسب نسخه php شماست یا خیر
نسخه xampp 7.4 هست و من dll های pdo.sql.ts.7.4 , sql.ts.7.4 داخل فایل php.ini با پیشوند extention= قرار دادم و همون خطایی که خدمتتان گفتم داد اگر لازم میدانید از صفحه فیلم بگیرم برایتان ارسال کنم
ویندوزتون رو عوض کنید