نحوه اتصال به MySQL در PHP
از PHP5 به بعد می توانید با پایگاه داده MySQL با استفاده از موارید زیر کار کنید:
- افزونه MySQLi (
"i"
مخفف improved یعنی بهبود یافته است ) - PDO ( PHP Data Objects )
نسخه های قبلی PHP از پسوند MySQL استفاده می کردند. با این حال، این پسوند در سال 2012 منسوخ شد.
از MySQLi استفاده کنیم یا PDO ؟
به طور کل از هرکدام که دوست داشته باشید می توانید استفاده کنید، امّا یکسری تفاوت ها وجود دارد که در ادامه اشاره خواهیم کرد.
MySQLi و PDO، هرکدام مزایای خود را دارند:
PDO روی 12 نوع سیستم پایگاه داده مختلف کار می کند، در حالی که MySQLi فقط با پایگاه های داده MySQL کار می کند.
بنابراین، اگر مجبور هستید پروژه خود را به استفاده از پایگاه داده دیگری تغییر دهید، PDO این فرآیند را آسان می کند. فقط باید رشته اتصال و چند پرس و جو را تغییر دهید. با MySQLi، باید کل کد را بازنویسی کنید.
هر دو شی گرا هستند، اما MySQLi یک API رویه ای نیز ارائه می دهد.
هر دو از دستورات prepared پشتیبانی می کنند. دستورات prepared از تزریق SQL محافظت می کنند و برای امنیت برنامه های وب بسیار مهم هستند.
هم در این فصل و هم در فصل های بعدی سه روش کار با PHP و MySQL را نشان می دهیم:
- MySQLi (object-oriented)
- MySQLi (procedural)
- PDO
نصب MySQLi
برای لینوکس و ویندوز: افزونه MySQLi در اکثر موارد، زمانی که بسته php5 mysql نصب می شود، به طور خودکار نصب می شود.
برای دریافت جزئیات نحوه نصب به این آدرس مراجعه کنید: http://php.net/manual/en/mysqli.installation.php
نصب PDO
برای دریافت جزئیات نحوه نصب به این آدرس مراجعه کنید: http://php.net/manual/en/pdo.installation.php
به پایگاه داده MySQL متصل شوید
قبل از اینکه بتوانیم به داده ها در پایگاه داده MySQL دسترسی داشته باشیم، باید بتوانیم به سرور متصل شویم:
مثال MySQLi Object-Oriented
به مثال شی گرا در بالا توجه کنید:
$connect_error
تا PHP 5.2.9 و 5.3.0 خراب بود. اگر می خواهید از سازگاری با نسخه های PHP قبل از 5.2.9 و 5.3.0 اطمینان حاصل کنید، به جای آن از کد زیر استفاده کنید:
// Check connection
if (mysqli_connect_error()) {
die("اتصال پایگاه داده انجام نشد: " . mysqli_connect_error());
}
مثال MySQLi Procedural
مثال PDO
یادداشت: در مثال PDO بالا همچنین نام پایگاه داده را مشخص کرده ایم. PDO برای اتصال به پایگاه داده معتبر نیاز داد. اگر هیچ پایگاه داده ای مشخص نشده باشد، یک استثنا ایجاد می شود.
نکته: یک مزیت بزرگ PDO این است که دارای یک کلاس استثنا برای رسیدگی به مشکلاتی است که ممکن است در کوئری های پایگاه داده ما رخ دهد. اگر یک استثنا در بلوک try{ }
ایجاد شود، اسکریپت اجرا را متوقف میکند و مستقیماً به اولین بلوک catch(){ }
جریان مییابد.
بستن اتصال به پایگاه داده
پس از پایان اسکریپت، اتصال به طور خودکار بسته می شود. برای بستن اتصال قبل از به پایان رسیدن اسکریپت، از موارد زیر استفاده کنید:
MySQLi Object-Oriented:
$conn->close();
MySQLi Procedural:
mysqli_close($conn);
PDO:
$conn = null;
آیا این مطلب برای شما مفید بود ؟