PHP & SQL Server

زبان PHP متداول‌ترین ابزار برای برنامه‌نویسی وب به شمار می‌رود. از طرف دیگر با توسعه‌ی روزافزون امکانات و توانایی‌های مرورگرهای اینترنتی، محیط وب در حال تبدیل شدن به سکوی اصلی برای توسعه‌ی نرم‌افزارهای کاربردی و سازمانی است.
با توجه به این شرایط، دسترسی آسان به اطلاعات ذخیره‌شده در پایگاه داده در محیط PHP بیشتر حس می‌شود.

دسترسی به پایگاه داده‌ی Microsoft SQL Server در زبان PHP با محدودیت‌هایی همراه است.
در این مقاله با ابزارهای موردنیاز برای برقراری این ارتباط آشنا می‌شویم و گام به گام مراحل نصب را دنبال خواهیم کرد.

Microsoft Visual C++ 2010 SP1 Redistributable Package

پیش از شروع لازم است تا بسته به ۳۲ یا ۶۴ بیتی بودن سیستم‌عامل خود یکی از فایل‌های زیر را دانلود و نصب کنید. این بسته پیش‌نیاز عملکرد مجموعه‌ی Wamp به شمار می‌رود:

برای دریافت نسخه‌ی ۳۲ بیتی اینجا کلیک کنید
برای دریافت نسخه‌ی ۶۴ بیتی اینجا کلیک کنید

نصب WampServer

WampServer مجموعه‌ای از سه نرم‌افزار Apache، MySQL و PHP است که در یک بسته به صورت آماده برای ویندوز ارائه می‌شود. این بسته از تنظیمات و محیط کاربری خوبی برخوردار است و می‌تواند در محیط‌های کاری نیز مورد استفاده قرار بگیرد.
برای دانلود این بسته به این صفحه مراجعه کنید.
با توجه به اینکه افزونه‌ی SQLSrv تنها به صورت ۳۲ بیتی ارائه می‌شود، آخرین نسخه‌ی ۳۲ بیتی Wamp را که در حال حاضر با شرح «WampServer (32 bits & PHP 5.4) 2.4» شناخته می‌شود دانلود و نصب کنید.

Microsoft SQL Server 2012 SP1 Native Client

کلیه‌ی نرم‌افزارهایی که بخواهند اطلاعات را با SQL Server رد و بدل کنند به این نرم‌افزار نیاز خواهند داشت. بنابراین لازم است پیش از نصب افزونه‌ی متناسب روی PHP این برنامه را نیز دانلود و نصب کنید
برای مراجعه به صفحه‌ی دانلود اینجا کلیک کنید
پس از کلیک روی دکمه‌ی دانلود فهرستی از فایل‌های قابل دریافت به شما نشان داده می‌شود. بسته به ۳۲ یا ۶۴ بیتی بودن سیستم‌عامل خود یکی از نسخه‌های x86 یا x64 را انتخاب کنید و پس از دانلود آن را روی ویندوز خود نصب کنید.
این فایل‌ها با نام‌های «ENU\x86\sqlncli.msi» و «ENU\x64\sqlncli.msi» شناخته شده‌اند.

Microsoft Drivers 3.0 for PHP for SQL Server

ارتباط PHP با پایگاه داده‌ی SQL Server از طریق این افزونه به انجام می‌رسد.
مطابق آنچه در راهنمای این نرم‌افزار گفته شده، نصب آن تنها در جدیدترین نگارش‌های ویندوز امکان‌پذیر است:

  • Windows Server 2008 R2 SP1
  • Windows Vista SP2
  • Windows Server 2008 SP2
  • Windows 7 SP1

ابتدا با کلیک روی این پیوند نسخه‌ی ۳.۰ افزونه را دانلود کنید. نرم‌افزار دانلود شده حاوی تعدادی فایل است که می‌بایست نسخه‌ی متناسب با نگارش PHP را در آن بیابید و در شاخه‌ی افزونه‌های PHP کپی کنید.
برای تعیین نگارش PHP که Wamp از آن استفاده می‌کند به شاخه‌ی «C:\wamp\bin\php» مراجعه کنید. در حال حاضر آخرین نسخه‌ی Wamp به همراه PHP 5.4 ارائه می‌شود. بنابراین نگارش افزونه نیز باید مطابق با این شماره باشد.
فایل‌های «php_pdo_sqlsrv_54_ts.dll» و «php_sqlsrv_54_ts.dll» را در مسیر «C:\wamp\bin\php\php5.4.XX\ext» کپی کنید.
پسوند «ts» در انتهای نام فایل‌ها به معنی «thread safe» است. نگارش «nts» نیز برای استفاده در کارساز وب IIS که از شیوه‌ی متفاوتی برای ارتباط با PHP استفاده می‌کند کامپایل شده است.
گام بعدی آگاه کردن PHP برای بارگزاری افزونه‌ی جدید است. برای این کار فایل php.ini را که در این نسخه از Wamp در شاخه‌ی «C:\wamp\bin\apache\Apache2.4.4\bin» قرار دارد باز کنید و دو خط زیر را در انتهای بخشی که extensionهای دیگر قرار دارند کپی کنید.

extension=php_pdo_sqlsrv_54_ts.dll
extension=php_sqlsrv_54_ts.dll

هم‌اکنون می‌توانید سرویس Apache در Wamp را بسته و دوباره اجرا کنید تا افزونه به صورت کامل فعال شود.

این افزونه حاوی دو سری دستورات برای ارتباط با پایگاه داده‌ی SQL Server است. سری نخست که به شکل افزونه‌ای برای PDO عمل می‌کند و سری دوم که به شکل مجزا دستوراتی را در محیط PHP در اختیار شما قرار می‌دهد.
پیشنهاد من استفاده از سری دستورات PDO است. به دلیل اینکه انتقال اطلاعات با کدگذاری UTF-8 در این سری از دستورات ساده‌تر است و علاوه بر آن امکان تغییر پایگاه داده‌ی نرم‌افزار بسیار ساده‌تر خواهد بود.

برای یادگیری دستورات قابل استفاده در هر یک از دو روش بالا می‌توانید به راهنمای chm افزونه که همراه آن دانلود می‌شود و همچنین برای آشنایی با سیستم PDO به راهنمای PHP مراجعه نمایید.

چنانچه تمامی فایل‌ها را به درستی دانلود و نصب کنید، با فراخوانی دستور phpinfo در PHP می‌توانید نام افزونه را در زیرمجموعه‌ی PDO و همین‌طور به صورت مجزا مشاهده کنید.

ارتباط PHP با SQL Server با کمک این افزونه تنها در سیستم‌عامل ویندوز امکان‌پذیر است و چنانچه بخواهید این ارتباط را در سیستم‌عامل دیگری برقرار کنید لازم است تا از رابط ODBC بهره‌گیری نمایید.

۲۰ نظر در مورد «راه‌اندازی Microsoft Drivers 3.0 for PHP for SQL Server روی WAMP»

  • فکر کنم WordPress هم از زبان PHP استفاده می کنه... یا اشتباه می کنم؟!
    هنگام نصب وردپرس در محیط لینوکس، نرم افزاری هست به نام MySQL که باهاش خیلی ساده میشه پایگاه داده ها ساخت.

    • امیرمسعود ایرانی می‌گوید:

      بله صحیح می‌فرمایید
      PHP به صورت پیش‌فرض امکانات ارتباط با MySQL را در خود دارد و نوشته‌ی بالا برای این است که برنامه‌نویسان بتوانند از امکانات SQL Server که محصول مایکروسافت است به جای MySQL استفاده کنند
      SQL Server در برخی محیط‌های سازمانی یا برای برخی نیازهای خاص ممکن است کارایی بهتری داشته باشد

  • سلام
    من با وردپرس و ومپ کار میکنم
    ولی یه مدته سرعته لود صفحم خیلی پایینه (هنوز سایتم رو لوکال هاسته)
    میشه خواهش کنم کمکم کنین ؟

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      وردپرس و ومپ دو نرم‌افزار بسیار با کیفیت هستند و اشکال از آن‌ها نمی‌تواند باشد
      اشکال‌ ممکن است نصب یک افزونه‌ی نامناسب روی وردپرس، نصب افزونه‌های دیگر روی آپاچی، پی‌اج‌پی باشد
      یا ممکن است سیستم شما به طور کلی ضعیف است و توانایی پشتیبانی از حجم اطلاعات موجود را ندارد
      به طور کلی پیدا کردن علت اصلی مشکل از راه دور کار سختی است و من فقط بعضی احتمالات را می‌توانم عرض کنم
      در ضمن محلی که برای پرسش انتخاب کردید مناسب نیست. لطفا در صورت تمایل به گفتگوی بیشتر از ایمیل amib در amib.ir استفاده کنید
      با تشکر

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      NetBeans که یک محیط برنامه‌نویسی است و در کار کردن یا نکردن اثری ندارد
      در مورد XAMPP هم ممکن است تفاوت‌های جزئی در روش انجام تنظیمات وجود داشته باشد ولی به طور کلی نباید مشکلی به وجود بیاید

    • امیرمسعود ایرانی می‌گوید:

      نیازی نیست از قبل این کار رو انجام بدید. حتی SQL Server می‌تونه روی یک سیستم دیگر در شبکه نصب بشه.
      SQL Native Client یک واسط برای ارتباط برنامه‌های مختلف با SQL Server هست
      در حقیقت این برنامه اطلاعات رو به روش‌های مختلف و آسان از برنامه‌نویس دریافت می‌کنه و اون‌ها را به SQL Server ارسال می‌کنه
      بدون در اختیار داشتن این ابزار هم امکان استفاده از SQL Server‌ وجود داره ولی حجم کدنویسی و روش دسترسی به اطلاعات بیشتر و سخت‌تر هست
      بیشتر برنامه‌هایی که با SQL Server در ارتباط هستند از SQL Native Client استفاده می‌کنند و برای کارکرد صحیح به نصب بودن این ابزار نیاز دارند

  • با سلام
    از راهنماییتون ممنون
    در حققت من میتونم با دو برنامه آخر با کد php به دیتابیس sql متصل شوم؟(برنامه اول که محیط برنامه نویسیت و برنامه دوم هم نرم افزار wamp)
    پس از نصب native client سیستم به صورت خودکار از این برنامه استفاده می کند یا باید به روش خاصی کد بزنیم؟
    با سپاس

    • امیرمسعود ایرانی می‌گوید:

      سلام
      بله می‌تونید این کار رو انجام بدید

      کتابخانه‌ی Drivers 3.0 for PHP به صورت خودکار از Native Client استفاده می‌کند و شما لازم نیست کار خاصی انجام بدهید
      البته شیوه‌ی کدنویسی با Drivers 3.0 for PHP رو باید مطالعه کنید

  • سلام
    من طبق روش بالا عمل کردم ولی هنگامی که وب سرور آپاچی را restart می کنم warning می دهد و sqlsrv را نمی آورد
    راه حل چیست؟
    وارنینگ آن به شرح زیر است:
    PHP Start up: pdo_sqlsrv:unable to initialize module Module compiled with build ID=API20090626,TS,VC9 PHP
    compiled with build ID=API20090626,TS,VC6
    These option need to match

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      مطابق توضیحات نوشته شده در متن خطا، افزونه‌ی sqlsrv با Visual C++ 9 کامپایل شده و php شما با Visual C++ 6. این دو نسخه باید با هم همخوانی داشته باشند.
      اگر همان طور که در مقاله نوشته شده است، از آخرین نگارش Wamp استفاده کنید این ناهمخوانی وجود ندارد

  • سلام امیر خان.
    من میخوام رو یه کامپیوتر تو شرکت یه سایت راه بندازم که بقیه بهش دسترسی داشته باشند.
    تنظیمات iis رو انجام دادم ، یه صفحه هم ساختم که همه میبینن. ولی اگه بخوام وردپرس نصب کنم که یه سایت حرفه ای بسازم باید چیکار کنم. البته نمیخوام از ومپ سرور و این چیزا استفاده کنم. sql2012 رو نصب کردم ولی دیگه نمیدونم باید چیکار کنم. میشه یه راهنمایی بفرمایید؟؟
    خیلی ممنون.

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      اگر می‌خواهید از وردپرس استفاده کنید، باید MySQL را هم نصب کنید. البته استفاده از بسته‌های آماده مثل WAMP یا XAMPP بهترین راه حل برای شما هست تا نخواهید درگیر تنظیمات و نصب سرور بشید که حداقل برای شروع کار نسبتا وقت‌گیر و مشکلیه.
      بعد از نصب WAMP یا XAMPP به راحتی می‌تونید وردپرس رو نصب کنید
      گام بعدی ایجاد یا پیدا کردن یک قالب مناسب برای وردپرس هست. همین طور نصب افزونه‌های لازم برای انجام نیازهایی که وجود داره.
      با توجه به اینکه این گفتگو در مورد مطلب بالا نیست، در صورت تمایل از ایمیل amibct در gmail استفاده کنید.

  • سلام من همه کارهایی که گفتید انجام دادم ولی همش ارور میده که باید sql server native client رو نصب کنی ... با اینکه من نصب کردم اما این خطا رفع نمیشه
    تورو خدا زودتر جواب بدید خیلی حیاتیه

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      مواردی که در بالا نوشته شده‌اند پس از تست و آزمون بوده است
      علت اینکه شما نمی‌توانید به نتیجه برسید ممکن است به دلیل عدم همخوانی برخی از نسخه‌ها( مثلا ۳۲ و ۶۴ بیتی )
      یا مشکلات دسترسی در سیستم عامل
      یا عدم دقت در نصب دقیق تمامی پیش‌نیازها باشد.
      لطفا تمامی پیش‌نیازها را یک بار دیگر بررسی کنید. و چنانچه به نتیجه نرسیدید، پیام‌های خطا و محل نمایش آن‌ها را از طریق ایمیل amibct در gmail برای بنده ارسال بفرمایید.
      با تشکر

  • باسلام.من نگارش ویندوز8.1 و php 7.2 رو از تو سایتهای دیگه هم خوندم و نصب کردم ولی انگار ن انگار. دستور Call to undefined function sqlsrv_connect() رو نمیشناسه تو php info هم نمیاره ,ولی با odbc pdo میرم جواب میده. مشکل اینجاست سرعتش سلکتش 15 ثانیس و سرعت خیلی پایین میاد.
    میخواستم از روش sqlsrv_connect استفاده کنم که کلا نصب نمیشه

    ویندوز 8.1
    php 7.2.12
    xampp
    sql 2014

    چه کنم بنظرت؟

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      علت مشکل به این صورت قابل پیدا کردن نیست و با بررسی و آزمون و خطا ممکن است بتوانید علت را پیدا کنید

  • سلام.
    سرور مجازی کرایه کردم. ویندوز اش 2012 است...
    برای SQL ومپ را نصب کردم که کلی اررور dll میده که احتمالا مربوط به مایکروسافت نت فریم ورک است که روی سرور نصب نشده.
    حالا لطفا راهنمایی کنید ومپ بهتره یا SQL server ?
    متشکرم

    • امیرمسعود ایرانی می‌گوید:

      با سلام
      به نظر می‌رسد آشنایی کافی با راه‌اندازی هاست و سرور را نداشته باشید و لازم باشد که از یک متخصص بخواهید تا کارهای مورد نظر شما را انجام بدهد
      دو نرم‌افزار Wamp و SQL Server کاربردهای یکسانی ندارند

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *