جلسه پانزدهم PHP: آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته
در این مقاله از کدپز با جلسه پانزدهم PHP در خدمت شما هستیم.
در قسمت قبل در جلسه چهاردهم PHP پایگاه داده MySQL را شرح دادیم. و همچنین مقدماتی از ساخت یک پایگاه داده در phpmyadmin از طریق محیط کاربری آن را بیان کردیم.
در پایان این جلسه:
نحوه ی اتصال PHP به پایگاه داده MySQL از دو روش mysqli و PDO را آموزش خواهید دید.
همچنین مقایسه ایی ما بین این دو روش انجام خواهد گرفت.
با ما همراه باشید.م
اتصال PHP به MySQL
در ورژن های پی اچ پی نسخه 5 و ورژن های بعدی اتصال با پایگاه داده MySQL به راحتی رخ می دهد. ما می توانیم با یکی از دو روش زیر این اتصال را ممکن سازیم.
- mysqli extension ( حرف i مخفف improved می باشد.)
- (PDO (PHP Data Objects
نسخه های قدیمی تر PHP از MySQL extension برای اتصال به دیتابیس MySQL استفاده می کردند. اما این افزونه از سال 2012 به بعد، نارضایتی ها را بیشتر کرده است.
شما در حال آموزش و یادگیری جلسه پانزدهم PHP می باشید.
از کدام روش برای اتصال به پایگاه داده MySQL استفاده کنیم؟ (PDO یا MySQL)
اگر به دنبال پاسخی کوتاه برای آن هستید، باید بگوییم که هر طور مایل بودید. می توان از هر دو استفاده کنید.
هر دوی MySQL و PDO مزایایی دارند:
PDO در 12 پایگاه داده مختلف کار می کند. در حالی که mysqli تنها با پایگاه داده های MySQL کار می کند.
بنابراین، اگر شما برای کاری، مجبور به تغییر دادن پایگاه داده خود هستید، PDO به شما کمک می کند.
در این حالت فقط کافی است تا رشته ارتباطی و تعدادی از query ها را نیز تغییر دهید. اما با mysqli، شما باید تمامی کدهایتان به همراه query ها را دوباره بازنویسی کنید. که امری دشوار می باشد.
از لحاظ امنیت می توان گفت که هر دوی این ها دستورات امن SQL را پیروی می کنند. که برای امنیت نرم افزار تحت وب بسیار ضروری می باشد. در تصویرزیر از جلسه پانزدهم PHP ، به طور خلاصه مقایسه ایی از هر دو خواهیم داشت.
مهم ترین مسئله این که در روش PDO دسترسی ما به 12 دیتابیس ممکن خواهد بود.
روش اتصال به پایگاه داده (MySQL و PDO)
در این جلسه و در جلسات بعد ما سه روش برای کار با PHP و MySQL را نشان خواهیم داد:
روش MySQLi (شی گرایی):
روش MySQLi (به صورت رویه ایی (procedural) ):
روش PDO
بعد از اینکه xampp را فعال کردید می توانید از هر 3 روش زیر برای اتصال به دیتابیس استفاده کنید.
مثال MySQLi (شی گرایی):
1 2 3 4 5 6 7 8 9 |
@$mysql = new mysqli('localhost','root','','codepaz') if(mysqli_connect_errno()) { echo "خطا در سرور"; //نمایش کد error echo '<br>'.mysqli_connect_errno(); die; } echo "Connected successfully"; |
مثال MySQLi (به صورت رویه ایی):
1 2 3 4 5 6 7 8 9 |
@$mysqli = mysqli_connect('localhost','root','','databasetest'); if(mysqli_connect_errno()) { echo "خطا در سرور"; //نمایش کد error echo '<br>'.mysqli_connect_errno(); die; } echo "Connected successfully"; |
مثال PDO:
1 2 3 4 5 6 7 8 9 10 11 12 |
try{ $pdo = new PDO("mysql:host=localhost;dbname=codepaz",'root', ''); echo "Connected successfully"; }catch(PDOException $err) { echo "خطا در سرور"; //نمایش کد error echo ' '.$err->getMessage(); die; } |
به نکات زیر از جلسه پانزدهم PHP توجه کنید.
نکته1: در صورتی که از هاست مجازی استفاده نمی کنید و سعی در برقرار کردن این اتصال در سایت خود را دارید، بایستی از username و password خود استفاده کنید.
نکته2: اگر تمایل به دیده نشدن ارور ها دارید کافی است تا قبل از mysql یک @ وارد کنید. حال شما توانستید عمل ارور هندلینگ را پیاده سازی کنید. این در حالیست که ارور ها نمایش داده نمی شوند.
نکته3: به کامنت ” نمایش کد error ” دقت کنید. خط بعدی این کامنت در هر 3 کد بالا شماره ارور را نمایش می دهد. و وقتی که ما از @ هم استفاده میکنیم. کاربر تنها شماره ارور را می بیند.
بستن اتصال
هنگامی که اسکریپت به پایان می رسد، اتصال به طور خودکار بسته خواهد شد. اما برای بستن زودتر آن می توان از کدهای زیر استفاده کرد:
مثال MySQLi (شی گرایی):
1 |
$conn->close(); |
مثال MySQLi (به صورت رویه ایی):
1 |
mysqli_close($conn); |
مثال PDO:
1 |
$conn = null; |
تبریک میگم شما موفق شدید تا جلسه پانزدهم PHP از کدپز را پشت سر بگذارید.
📝<<فکر تغییر یک شبه را از سرتان بیرون کنید!
تغییرِ یک شبه در داستان ها و فیلم ها جذاب است، در دنیای واقعی، تغییر، همیشه تدریجی است. . . . . >> ☑️
7 Comments
Join the discussion and tell us your opinion.
سلام
تو قسمت PDO نوشته بودین:
echo ”.$err->getMessage();
که PhpStorm من گفت خطای syntax داره.
لطفاً بررسی کنید؛ ممنون
ممنون از شما اصلاح شد.
سلام
روش mysql رویه ای از php 5 به بعد منسوخ شده .
سلام
برای اتصال به دیتابیس سایت خودم میخوام کد بنویسم
نام کاربری و رمز هاست رو بهجای لوکال وارد میکنم ولی متصل نمیشه و نمی تونه اطلاعات جداولم رو نشون بده
این کد روی لوکال جواب میده
از کد هایی که داخل همین آموزش ها هست، استفاده کنید.
سلام
من با cpanel کار می کنم نام localhost رو نمیدونم از کجا پیدا کنم!
آموزشی وجود داره؟
با سلام
می توانید از آموزش نصب وردپرس در لوکال هاست در سایت کدپز استفاده کنید.