براي شروع عمليات دربانک اطلاعاتي بايد ابتدا با آن ارتباط برقرار نمود. جهت ارتباط بايد شرايط يا مجوز آن برقرارشده باشد . با نام کاربري ورمز عبورتعريف شده ميتوان ارتباط برقرار نمود. کاربرadminاولين کاربريست که ميتواند ارتباط برقرارنمايد. اوميتواند هر مجوزي را صادركند. کاربر ديگرهم با توجه به اختيارات دريافت شده ميتواند عمليات انجام داده يا مجوز صادرنمايد. هربانک اطلاعاتي اجزاء متفاوتي دارد که براي ارتباط با آن بايد مجوزلازم وجود داشته باشد. اولين مجوز لازم، مجوز ارتباط با بانک اطلاعاتي است.
براي ارتباط با بانک اطلاعاتي سه پارامترنام سرور(servername) نام کاربر (username)و رمزعبور (password) مورد نيازاست.
يادآوري ـ درPHPهرمتغيري باکراکتر$شروع ميشود.
نسخه پنجphpونسخ بعدي آن ، با بانک اطلاعاتيmysql بدوفرمت زيرميتوانندکارکنند.
mysqli extention -1
PDO(php data objects) -2
مورداول فقط ميتواند باmysqlکارنمايدومخصوص آن تهيه گرديده است. وکارآسانترازpdo ميباشد. اماpdoحالت شي گرايي داشته وحدودا با 12سيستم بانک اطلاتي کارميکند. اين مورد براي جامعيت نرم افزارکاربرد دارد. ونرم افزار ساده تربه سيستم اطلاعاتي ديگرلينک ميشود. درادامه مثالهائي از هر دو روش ارائه ميشود تابکارگيري آنها راتجربه کنيد.
توجه ـ نسخه هاي قديميPHP ازMySql extention استفاد ميكردند اما آن از سال2012 منسوخ شده است.
براي ارتباط درphpبراي مثالهاي ارائه شده ازسه روش موجود استفاده مي نمائيم. اين روشها مطابق زيرميباشند.
Mysqli(object oriented)-1
Mysqli(procedural)-2
PDO(php data objects)-3
روشهاي 1و3فرمت شيگرايي داشته وروش2فرمت رويه اي ياتابعي است.
قبل ازاينکه بتوان به بانک اطلاعاتي دسترسي داشت ، بايد با سرور موردنظرارتباط برقرارنمود. روشهاي ارتباط باسرور درمثالهاي ارائه شده بيان ميگردد.
مثال ـ ارتباطphp-mysql بافرمتmysqli شي گرا
دراين مثال ازتابعmysqliباسه پارامترنام سرور نام کاربرورمزعبوراستفاده شده که درمثال مشخص ميباشد. نتيجه تابعmysqliدرمتغيرconn قرارميگيرد. اين متغير نماينده رابطه بوده که موفقيت يا عدم موفقيت آن بررسي شده وپيغام مناسب داده ميشود.
<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = new mysqli($servername, $username, $password); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully"; $conn->close(); ?>
توجه ـ مثال هاي نمونه
دراين برنامه دستورزيرتوسط تابعmysqliارتباط رابا سرورlocalhostبرقرارميکند
نتيجه ارتباط به شيconnمنتقل ميشود. از خاصيت connect_error براي بررسي ارتباط وازمتدclose براي بستن ارتباط استفاده گرديده است. عمدتاازnewدرphp براي ايجاد شي استفاده ميشود.خاصيت ومتد فوق بفرمت زيرميباشد.
$conn->connect_error
$conn->close()
درتابعmysqliميتوان ازپارامترچهارم براي portبفرمت زيراستفاده نمود.
مثال ـ ارتباطphp-mysql بافرمت رويه ايmysqli
دراين روش ازتابعmysqli_connect()براي ارتباط باسرورمطابق دستور زيراستفاده شده ونتيجه بصورت مقاديرمنطقيtrueيا Fuls درمتغيرconn قرارميگيرد.
درانتها با تابعmysqli_close()ارتباط فوق قطع ميگردد .
<?php $servername = "localhost"; $username = "username"; $password = "password"; // Create connection $conn = mysqli_connect($servername, $username, $password); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "Connected successfully"; mysqli_close($conn); ?>
وضعيت ارتباطي روي متغيرconnبا دستورif کنترل وپيغام مناسب داده ميشود .
روش فوق نسبت به روش شيگرا قديمترميباشدوليphpهردو روش را حمايت ميکند. اين دو روش فقط براي ارتباط باMysqlميباشدونمي توان با سيستم اطلاعاتي ديگرمثلsqlserver ارتباط برقرارنمود.
مثال ـ ارتباطphp-mysql بافرمتPDO باMysql
روشpdoازنوع شيگراست وبا آن ميتوان با mysql سيستمهاي اطلاعاتي ديگرازطريقphp ارتباط برقرارنمود. دستور برنامه كه باعث ارتباط ميشود، مطابق زيراست.
دراين روش ازتابعpdoبراي ايجاد شي ارتباطconn)(استفاده مي شود.تابع شامل سه پارامتراست. پارامتردوم وسوم به ترتيب نام کاربرورمزعبوربوده واولين پارامتراطلاعات ترکيبي ، نام سرور و بانک اطلاعاتي پيش فرض را شامل ميشود. دراين مثال بانک اطلاعاتيparandدرنظرگرفته شده است.
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=parand", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } $conn = null; ?>
روشpdoامکان قدرتمندومفيدي دارد، که ميتواند اتفاقاتي رادربلوکtry رخ ميدهد دربلوکcatch با ايجاد شئ خطا"$e()" نگهداري وپيغام دهد. براي خطا ازتابعgetMessage()شي مربوطه استفاده مينمايد.