آموزش Mysql در PHP – اتصال به پایگاه داده
سلام
با دومین جلسه از آموزش Mysql در PHP در خدمتتون هستیم، در جلسه ی قبل با دیتابیس Mysql آشنا شدیم، حالا توی این جلسه میخوایم در PHP به دیتابیس متصل بشیم؛ در ادامه همراه بپرسم باشید.
از نسخه PHP 5 به بعد در پایگاه داده MySql تغییرات عمده ای صورت گرفت، که دو تغییر مهم عبارتند از:
- پسوند Mysql به mysqli تغییر پیدا کرده است.
- شی گرایی یا PDO اضافه شد.
نسخه های قبلی PHP از پسوند MySql استفاده می کردند
از Mysqli یا PDO باید استفاده کنم؟
شاید این سوال براتون پیش اومده باشه حالا که هم mysqli داریم و هم PDO از کدوم باید استفاده کنم، در جواب کوتاه باید گفت از هر کدوم که دوست دارید میتونید استفاده کنید!
Mysqli و PDO هر کدوم مزایای خود را دارند:
- PDO با ۱۲ نوع پایگاه داده مختلف کار میکند، در حالیکه Mysqli فقط با پایگاه داده Mysql کار میکند.
بنابرین اگر مجبور باشید در آینده پایگاه داده ی پروژه ی خود را تغییر دهید، PDO کار را ساده کرده است و پیشنهاد میکنیم که از PDO استفاده کنید که برای تغییر پایگاه داده نیاز به تغییرات گسترده ای ندارید فقط کافیست چند رشته اتصال و عبارت را تغییر دهید. ولی اگر از Mysqli استفاده کنید و بخواهید سیستم پایگاه داده را تغییر دهید باید کدهای زیادی را بازنویسی کنید که این کدها شامل درخواست ها هم میشود.
- هر دو روش موجود شی گرا هستند.
- هر دو ازعبارت های آماده (Prepared Statements) پشتیبانی میکنند. Prepared Statements از تزریق کدهای مخرب SQL محافظت میکنند و برای امنیت برنامه های تحت امری بسیار مهم و ضروری می باشد.
ارتباط با دیتابیس در هر دو روش Mysqli و PDO
در این بخش و در فصل های بعدی ما سه روش کار با PHP و MySQL را خواهیم گفت:
- MySQLi (شی گرا)
- MySQLi (رویه ای)
- PDO
اتصال به دیتابیس در PHP (باز کردن)
قبل از دسترسی به دیتابیس و کار با داده ها ابتدا باید به سرور متصل شویم؛ که در اصطلاح به این عملیات باز کردن دیتابیس هم گفته میشود. برای اتصال به دیتابیس از کدهای زیر استفاده میکنیم:
نمونه کد Mysqli اتصال به دیتابیس(شی گرایی):
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ |
<?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"; ?> |
یک نکته در رابطه با مثال بالا:
connect_error$ تا PHP 5.2.9 و ۵.۳.۰ شکسته شد و منسوخ شده است، اگر از PHP نسخه های ۵.۲.۹ و ۵.۳.۰ استفاده میکنید میخواهید که با نسخه های جدید PHP هم سازگاری داشته باشد، به جای آن از کد زیر استفاده کنید.
۱ ۲ ۳ ۴ |
// Check connection if (mysqli_connect_error()) { die("Database connection failed: " . mysqli_connect_error()); } |
نمونه کد Mysqli اتصال به دیتابیس(رویه ای):
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ |
<?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(); } ?> |
در مثال PDO بالا ما یک پایگاه داده (myDB) را نیز مشخص کرده ایم. PDO برای اتصال به پایگاه داده معتبر نیاز دارد. اگر هیچ پایگاه داده ای مشخص نشده باشد، یک استثنا پرتاب می شود.
قطع اتصال به دیتابیس در PHP (بستن)
قطع اتصال به دیتابیس بعد از پایان اسکریپت یا برنامه به صورت خودکار انجام میشود، در صورتی که خواسته باشید قبل از پایان یافتن اسکریپت اتصال به دیتابیس را ببندید می توانید از موارد زیر استفاده کنید:
- MySQLi Object-Oriented
۱ |
$conn->close(); |
- MySQLi Procedural
۱ |
mysqli_close($conn); |
- PDO
۱ |
$conn = null; |
این قسمت از آموزش به پایان رسید، همراه ما باشید با دیگر آموزش ها …
چنانچه مشکلی در رابطه با اتصال دیتابیس در PHP داشتید، در بخش پرسش و پاسخ سایت مطرح کنید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید