زبان 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 بهرهگیری نمایید.
فکر کنم WordPress هم از زبان PHP استفاده می کنه... یا اشتباه می کنم؟!
هنگام نصب وردپرس در محیط لینوکس، نرم افزاری هست به نام MySQL که باهاش خیلی ساده میشه پایگاه داده ها ساخت.
بله صحیح میفرمایید
PHP به صورت پیشفرض امکانات ارتباط با MySQL را در خود دارد و نوشتهی بالا برای این است که برنامهنویسان بتوانند از امکانات SQL Server که محصول مایکروسافت است به جای MySQL استفاده کنند
SQL Server در برخی محیطهای سازمانی یا برای برخی نیازهای خاص ممکن است کارایی بهتری داشته باشد
سلام
من با وردپرس و ومپ کار میکنم
ولی یه مدته سرعته لود صفحم خیلی پایینه (هنوز سایتم رو لوکال هاسته)
میشه خواهش کنم کمکم کنین ؟
با سلام
وردپرس و ومپ دو نرمافزار بسیار با کیفیت هستند و اشکال از آنها نمیتواند باشد
اشکال ممکن است نصب یک افزونهی نامناسب روی وردپرس، نصب افزونههای دیگر روی آپاچی، پیاجپی باشد
یا ممکن است سیستم شما به طور کلی ضعیف است و توانایی پشتیبانی از حجم اطلاعات موجود را ندارد
به طور کلی پیدا کردن علت اصلی مشکل از راه دور کار سختی است و من فقط بعضی احتمالات را میتوانم عرض کنم
در ضمن محلی که برای پرسش انتخاب کردید مناسب نیست. لطفا در صورت تمایل به گفتگوی بیشتر از ایمیل amib در amib.ir استفاده کنید
با تشکر
با سلام
از این روش می توان برای netbeans و xampp هم استفاده کرد؟
با سلام
NetBeans که یک محیط برنامهنویسی است و در کار کردن یا نکردن اثری ندارد
در مورد XAMPP هم ممکن است تفاوتهای جزئی در روش انجام تنظیمات وجود داشته باشد ولی به طور کلی نباید مشکلی به وجود بیاید
نرم افزار sql server باید از قبل نصب شده باشه دیگه؟میشه در مورد sql server native client بیشتر توضیح بدهید
ممنون
نیازی نیست از قبل این کار رو انجام بدید. حتی 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 کاربردهای یکسانی ندارند