آموزش اتصال Connect به پایگاه داده MySQL
آموزش اتصال Connect به پایگاه داده MySQL :
نسخه های PHP5 و بالاتر برای اتصال به یک پایگاه داده MySQL از موارد زیر استفاده می کنند :
- MySQLi extension (حرف i مخفف عبارت پیشرفته تر یا improved است).
- اشیای داده ای PHP با PDO (PHP Data Objects).
نسخه های قدیمی تر PHP از MySQL extension برای اتصال به MySQL Daqtabase استفاده می کردند. اما این افزونه از سال ۲۰۱۲ به بعد، منسوخ شده است.
کی و کجا از MySQL یا PDO استفاده کنیم؟
اگر بخواهیم خلاتصه بگوییم کی و از کجا از MySQLi یا PDO استفاده کنیم، جواب اینه “هر جا و هرجور که دوست داشتید!”.
اما هر دو MySQLi و PDO مزایای خاص خود را دارند.
PDO می تواند با ۱۲ سیستم مختلف پایگاه داده کار کند، در حالی که MySQLi فقط می تواند با پایگاه داده MySQL کار کند.
بنابراین اگر بخواهید پایگاه داده پروژه خود عوض کنید، PDO کار را بسیار راحت تر خواهد کرد. در این حالت فقط نیاز دارید تا رشته ارتباطی (Connection String) را به همراه تعدادی از query ها تغییر دهید، اما در صورت استفاده از MySQL بایستی کل کد پروژه را از اول نوشته و query ها را نیز تغییر دهید.
هر دو روش PDO و MySQLi روش برنامه نویسی شی گرا (oop) را ارائه داده، ولی استفاده از روش برنامه نویسی رویه ای در MySQLi نیز امکان پذیر است.
هر دو روش از دستورات امن و مناسب SQL یا Prepared Statment پشتیبانی می کنند. دستورات امن SQL سیستم را از حملات تزریق SQL injection محافظت کرده که برای امنیت نرم افزار تحت وب بسیار ضروری است.
ارائه مثال های عملی با ساختار دستوری PDO و MySQLi :
در این درس و درس های آینده ما هر ۳ روش کار با پایگاه داده MySQL را آموزش داده و مثال های عملی مرتبط با آن ها را ارائه می دهیم :
- روش MySQL به صورت شی گرا یا Object-oriented.
- روش MySQL به صورت رویه ای یا Procedural.
- روش PDO.
آموزش نصب MySQLi :
در سیستم های ویندوز و Linux، هنگامی که پکیج PHP5 MySQL را نصب می کنند، معمولا افزونه MySQL نیز به صورت خودکار نصب می شود.
برای دریافت اطلاعات بیشتر جهت نصب MySQL به آدرس php.net/manual/en/mysqli.installation.php بروید.
آموزش نصب PDO :
برای دریافت آموزش های نصب لازم جهت PDO به آدرس php.net/manual/en/pdo.installation.php بروید.
`آموزش باز کردن یا اتصال یا Connection به MySQL :
قبل از این که بتوانیم به اطلاعات درون پایگاه داده MySQL دسترسی داشته باشیم، بایستی یک اتصال یا Connection را به سرور برقرار کنیم. کد زیر نحوه اتصال به MySQL را به صورت عملی نشان داده است : کد مثال شی گرا 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"
;
?-->
راهنمایی :
به یک نکته مهم در زمینه کارکرد شی گرایی مثال بالا اشاره می کنیم .
خاصیت $Connect-error در نسخه های قبل از PHP5.2.9 و ۵.۳.۰، دچار مشکل می شد. اگر می خواهید از سازگاری دستور را با نسخه های قبل از PHP5.3.0 مطمئن شوید، از کد اصلاح شده زیر به جای کد فوق استفاده کنید. کد مثال MySQL رویه ای :<!--?php$servername= "localhost";$username= "username";$password= "password";// Create connection$conn= mysqli_connect($servername, $username, $password);// Check connectionif(!$conn) {die("Connection failed: ". mysqli_connect_error());}echo"Connected successfully";?-->
کد مثال PDO :<!--?php$servername= "localhost";$username= "username";$password= "password";try{$conn= newPDO("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 :
در کد مثال روش PDO مثال فوق، ما یک پایگاه داده به نام myDB را نیز تعیین کرده ایم. به این دلیل که PDO برای کارکرد صحیح، نیاز به یک پایگاه داده معتبر دارد. اگر پایگاه داده ای برای آن تعیین نشود، یک خطا exception رخ می دهد.
نکته ۲ :
یک فایده مهم استفاده از روش PDO این است که این روش دارای یک کلاس exception class ویژه برای مدیریت خطاهایی است که ممکن است در query های پایگاه داده رخ دهد.
اگر یک خطا یا exception در بلوک try{} برنامه رخ دهد، اسکریپت اجرای کد را متوقف کرده و به صورت مستقیم به کد اولین بلوک Catch{} بعد از آن پرش می کند.
آموزش بستن یا Close اتصال یا Connection در MySQL :اتصال (Connection) به پایگاه داده، به صورت اتوماتیک پس از اجرای کدهای اسکریپت بسته می شود، اما برای بستن زودتر آن می توان از کدهای زیر استفاده کرد : کد مثال شی گرا MySQLi :$conn->close();
کد مثال MySQL رویه ای :mysqli_close($conn);
کد مثال PDO :$conn
= null;