‎‎ارتباط با بانك اطلاعاتيmysql با php

Previous >    <Next  

‎براي شروع عمليات دربانک اطلاعاتي بايد ابتدا با آن ارتباط برقرار نمود. جهت ارتباط بايد ‎شرايط يا مجوز آن برقرارشده باشد . با نام کاربري ورمز عبورتعريف شده ميتوان ‎ارتباط برقرار نمود. کاربر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();
 ?> 

‎توجه ـ مثال هاي نمونه‎PHP an MySql‎بدلايل امينت اطلاعات بصورت ‎پويا اجرا نمي شوند .بهترين راه ايجاد يكLocalhost است .تابتوانيد آنها را امتحان. كنيد.

‎‎دراين برنامه دستورزيرتوسط تابعmysqliارتباط رابا سرورlocalhostبرقرارميکند

$conn = new mysqli($servername, $username, $password);

‎نتيجه ارتباط به شيconnمنتقل ميشود. از خاصيت connect_error براي بررسي ارتباط وازمتدclose ‎براي بستن ارتباط استفاده گرديده است. عمدتاازnewدرphp براي ايجاد شي استفاده ميشود.خاصيت ‎ومتد فوق بفرمت زيرميباشد.

‎$conn->connect_error

$conn->close()

‎‎درتابعmysqliميتوان ازپارامترچهارم براي portبفرمت زيراستفاده نمود.

$conn = new mysqli($servername, $username, $password,$port);

‎‎مثال ـ ارتباطphp-‎mysql بافرمت رويه ايmysqli

‎دراين روش ازتابعmysqli_connect()‎براي ارتباط باسرورمطابق دستور زيراستفاده شده ‎ونتيجه بصورت مقاديرمنطقيtrueيا Fuls درمتغيرconn قرارميگيرد.

$conn = mysqli_connect($servername, $username, $password);

‎‎درانتها با تابع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 ارتباط ‎برقرارنمود. دستور برنامه كه باعث ارتباط ميشود، مطابق زيراست.

‎‎

‎$conn = new PDO("mysql:host=$servername;dbname=parand", $username, $password);

‎‎

‎دراين روش ازتابعpdoبراي ايجاد شي ارتباطconn)(استفاده مي شود.تابع شامل سه پارامتراست. ‎پارامتردوم وسوم به ترتيب نام کاربرورمزعبوربوده واولين پارامتراطلاعات ترکيبي ، نام سرور و ‎بانک اطلاعاتي پيش فرض را شامل ميشود. دراين مثال بانک اطلاعاتيparandدرنظرگرفته شده است.

‎"mysql:host=$servername;dbname=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()‎شي مربوطه استفاده ‎مينمايد.


Previous >    <Next