همانطور که اطلاع دارید توابع mysqli و کلاس PDO و MYSQLI، جایگزین MySQL شده است . در نسخه های php ورژن ۵٫۶ به بعد با خطای deprecated مواجه می شوید و کاملا توصیه میشود که استفاده نکنید و در php ورژن ۷ نیز به طور کامل این توابع حذف شده است و با خطای undefined function مواجه می شوید.
برای آشنایی با انواع خطاها در php کلیک کنید
در برنامه ها و کدهایی که خواهید نوشت باید این موضوع را لحاظ کنید تا از نسخه های جدید PHP مثل ۷ بتوانید به راحتی استفاده کنید. به علاوه باید برنامه های قبلی را که نوشته اید هم بروز کنید . در مقاله استفاده از MySQLi به جای MySQL در PHP چند مورد از کدهای MySQL و معادل اونها در MySQLi رو خواهیم دید.
اتصال به MySQL Server در PHP
همانطور که می دانید در نسخه قبلی(ماژول MySQL) از این کد برای اتصال به MySQL استفاده می کردیم:
1 |
mysql_connect('localhost', 'user', 'password'); |
و حالا باید با کد زیر جایگزین شود:
1 |
$con = mysqli_connect('localhost', 'user', 'password'); |
در کد جدید بعد از اتصال صحیح به سرور MySQL ،کلید مربوط به اتصال ایجاد شده و در متغیر $con
ذخیره می شود.این متغیر مهم است و در ادامه از آن استفاده خواهید کرد.
انتخاب Database
انتخاب دیتابیس در روش قدیمی با این کد انجام می شد:
1 |
mysql_select_db('database'); |
و در روش جدید با این کد جایگزین شده است:
1 |
mysqli_select_db($con, 'database'); |
همانطور که می بینید متغیری که حاوی کلید اتصال است یعنی $con
اینجا باید به عنوان پارامتر اول پاس داده شود.در ضمن می توانید از این دستور استفاده نکنید و اسم دیتابیس را به عنوان پارامتر چهارم به تابع بالا یعنی mysqli_connect
پاس دهید.
اگر قصد ندارید از تابع mysqli_select_db برای مشخص کردن نام دیتابیس استفاده کنید حتما نام دیتابیس را به عنوان پارامتر چهارم به تابع mysqli_connect پاس بدید
1 |
$con = mysqli_connect('localhost', 'user', 'password','dbname'); |
اجرای Query
اجرای کوئری قبلا به این شکل انجام می شد:
1 |
$query = mysql_query('select * from users'); |
و حالا به این شکل تغییر کرده است:
1 |
$query = mysqli_query($con, 'select * from users'); |
دریافت اطلاعات و نمایش در حلقه While
همانطور که می دانید داده ای که تابع بالا برمی گرداند مستقیما قابل نمایش نیست و باید آن را یک مرحله دیگر فراوری کنیم که این کار با تابع mysql_fetch_assoc
قبلا انجام می شد :
1 2 3 4 |
while($rows = mysql_fetch_assoc($query)) { echo 'Name is :' . $row['name'] ; } |
و حالا کد بالا به این شکل باید تغییر کند:
1 2 3 4 |
while($rows = mysqli_fetch_assoc($query)) { echo 'Name is :' . $row['name'] ; } |
در آموزش استفاده از MySQLi به جای MySQL در PHP به طور ساده نحوه ارتقا ماژول MySQL در PHP به ماژول MySQLi را با دستورات پرکاربرد توضیح دادیم.
برای آموزش کامل اتصال به دیتابیس با mysqli در php کلیک کنید
هر مشکلی در پیاده سازی کد ها داشتید . از قسمت نظرات با ما در ارتباط باشید , سریعا پاسخگوی سوالات شما هستیم .
موفق و پیروز باشید