%45 تخفیف، با کد Ghadir روی تمام آموزش ها، بمناسبت عید غدیر
زمان باقی مانده (آخرین فرصت)

ارتباط به پایگاه داده mysql در PHP

در PHP نسخه 5 به بالا، برای کار با پایگاه داده MySQL می توانید یکی از روش های زیر را استفاده نمایید:

  • افزونه MySQLi (کاراکتر i مخفف improved بمعنی بهبود یافته است)
  • PDO که سرنام واژگان PHP Data Objects است

در نسخه های قبلی PHP از افزونه MySQL استفاده می شده، اما استفاده از این افزونه، از 2012 دیگر توصیه نمی شود.


باید از MySQLi استفاده کنم یا PDO ؟

Wiki

اگر بخواهیم خیلی خلاصه جواب دهیم، این انتخاب بستگی به نیاز شما دارد ...!

هر کدام از گزینه های MySQLi و PDO، مزییت های خودشان را دارند.

گزینه PDO با 12 پایگاه داده مختلف کار می کند، اما MySQLi تنها با پایگاه داده MySQL کار خواهد کرد.

بنابراین اگر بخواهید زمانی به یک پایگاه داده دیگر سوییچ کنید، گزینه PDO کار را آسان تر خواهد کرد و فقط کافی است که ارتباط یا connection به پایگاه داده را تغییر دهید و احتمالاً چند تغییر کوچک در کوئری ها را خواهید داشت.

هر دو گزینه شیء گرا هستند، اما MySQLi رویه های API را نیز ارائه می دهد.

هر دو گزینه، دستورات آماده برای مقابله با تزریقات SQL یا SQL injection را پشتیبانی می کنند، که البته این موضوع، برای حفظ امنیت برنامه های کاربردی وب بسیار حیاتی است.


مثال های MySQL به هر دو روش MySQLi و PDO

Wiki

در این مطلب و آموزش های بعدی، سه روش مختلف برای کار کردن با پایگاه داده را نشان خواهیم داد:

  • MySQLi (شیء گرا یا Object-Oriented)
  • MySQLi (رویه ای یا Procedural)
  • PDO

نصب MySQLi

Wiki

برای سیستم عامل Linux و Windows، افزونه MySQLi در اغلب موارد بصورت اتوماتیک بعد از نصب پکیج php5 mysql نصب خواهد شد.

برای کسب اطلاعات بیشتر به لینک روبرو مراجع فرمایید: http://php.net/manual/en/mysqli.installation.php


نصب PDO

Wiki

برای کسب اطلاعات بیشتر به لینک روبرو مراجع فرمایید: http://php.net/manual/en/pdo.installation.php


ارتباط یا Connection به پایگاه داده MySQL

Wiki

قبل از اینکه به داده های پایگاه داده دسترسی داشته باشید، باید یک ارتباط یا Connection تعریف کنید:

مثال   (MySQLi Object-Oriented)

<?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";
?>
Noteتوجه داشته باشید که در مثال شیء گرای بالا، connect_error$ تا PHP 5.2.9 و 5.3.0 PHP کار نمی کند، بنابراین اگر می خواهید که کدتان با نسخه های قدیمی PHP نیز سازگار باشد، بجای آن از کد زیر استفاده نمایید:
 // Check connection
if (mysqli_connect_error()) {
    die("Database connection failed: " . mysqli_connect_error());
}

در مثال زیر با استفاده از تابع ()mysqli_connect یک connection به پایگاه داده تعریف شده است:

مثال (MySQLi Procedural)

<?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";
?>

مثال(PDO)

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
    $conn = new PDO("mysql:host=$servername;dbname=myDB", $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();
    }
?>
Noteتوجه داشته باشید که در مثال PDO بالا، با تنظیم گزینه dbname با مقدار "myDB" نام پایگاه داده را نیز مشخص کرده ایم. اگر PDO موفق به اتصال به پایگاه داده نشود یک استثنا یا exception پرتاب (thrown) می شود.

نکته: یکی از بزرگترین مزیت های PDO وجود کلاس exception برای مدیریت خطاها است. همان طور که می دانید این خطاها ممکن است در کوئری های پایگاه داده رخ دهد و اگر یک استثنا یا exception از داخل بلاک { }try پرتاب (thrown) شود، اجرای اسکریبت متوقف شده و جریان کار به اولین بلاک { }catch منتقل می شود. در واقع استثنای که در قسمت try رخ داده در قسمت catch به دام می افتد.


بستن یک ارتباط

Wiki

ارتباط یا Connection به صورت اتوماتیک وقتی که اسکریبت پایان یافت، بسته می شود، اما اگر مایل باشید می توانید این کار را قبل از پایان اسکریبت انجام دهید:

مثال(MySQLi Object-Oriented)

$conn->close();

مثال(MySQLi Procedural)

mysqli_close($conn);

مثال(PDO)

$conn = null;

برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

آموزش صوتی PHP

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

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