طراحی سایت, ساخت ربات تلگرام, آموزش php , سورس کد php ,سورس ربات تلگرام , سورس فروشگاه اینترنتی , آموزش طراحی وب

اتصال به دیتابیس با mysqli


در آموزش اتصال به دیتابیس با mysqli ، قصد داریم نحوه پیادی سازی عملیات CRUD توسط MYSQLi و prepared statement را یاد بگیریم

Mysqli چیست ؟

در نسخه های قدیمی تر PHP مثل PHP4 از mysql استفاده میشد و کاملا برای تمامی برنامه نویس ها جا افتاده بود. اما در نسخه های جدید php یعنی در حال حاضر  PHP7 و PHP5.6 برای کار با دیتابیس از افزونه پیشرفته تری استفاده میشه. این افزونه که بهینه شده ی MySql هست MySqli نامگذاری شده. (افزونه PDO برای اتصال به انواع دیتابیس ها در PHP)

  • در این ماژول شما میتونید هم بصورت شی گرایی یا  Object Oriented کار کنید هم بصورت  Procedural . البته روش شی گرایی انعطاف پذیر تر هست و شما راحت تر میتونید باهاش کار کنید.
  • MySqli فقط با دیتابیس MySql سازگاری داره.
  • MySqli میتونه Stored Procedure رو هم Call کنه که این از نظر  Sql Injection امنیت شمارو تامین میکنه.
  •  MySqli توسعه یافته ی MySql هست و طبق تجارب بدست اومده سرعت عملکردش از PDO هم بیشتره.
  • اگر کنترل پنل شما ویندوز و یا لینوکس باشه ، MySqli بطور کامل روی کنترل پنلتون نصب هست و نیازی به نصب ندارید.

نکته : اگر Procedural یا همان رویه ای کار می کنید تفاوتی بین  MySql و  MySqli نمیبینید جر اینکه حرف i به دستورات اضافه شده، اما شی گرایی کاملا متفاوت عمل میکنه.

Prepared statement چیست ؟ یک قابلیت برای اجرای کردن یک دستور SQL مشابه به دفعات زیاد و با کارایی بالا است . در واقع دستورات prepare شده یک قالب استاندارد برای دستورات SQL است .

استفاده از دستورات از پیش تعیین شده یا همان prepared statement از لحاظ کارایی ، سرعت و امنیت ، مزیت های زیادی دارد . با استفاده از این متد ، کوئری برای بار اول کامپایل شده و منابع مورد نظر ساخته و در دستورات prepare شده ذخیره می شوند . این شئ (object) برای دفعات بعد در کدهایمان استفاده می شوند که باعث کاهش زمان اجرا (execute) می شوند.

اتصال به دیتابیس با mysqli

در این مثال از اتصال به دیتابیس با mysqli، من یک جدول employee در دیتابیس با عملیات CRUD می سازم . ما به دیتابیس متصل و یک کوئری را برای INSERT ،UPDATE، DELETE، SELECT آماده می کنیم .

بعد اگر نیاز بود ، مقادیر را به پارامتر های کوئری ، Bind میکنیم . در مقاله قبلی در مورد آموزش pdo در php دیدم.

 

Create توسط prepared Statement

این کد از اتصال به دیتابیس با mysqli ، به شما یک فرم HTML برای ثبت یک سطر جدید در دیتابیس را نشان می دهد. سه فیلد برای جمعاوری اطلاعات کارکنان (employee) وجود دارد . با ارسال (submit) این فرم ، داده فیلد های این فرم به صفحه php ارسال می شود.

در کد php ، دستور sql برای insert و bind کردن مقادیر فرم به پارامتر های کوئری ایجاد می شود .

حتما بخوانید  استفاده از MySQLi به جای MySQL در PHP

خواندن سطر ها

کد زیر برای خواندن لیست کارکنان از دیتابیس به کار می رود . این لیست شامل عملیاتی برای ویرایش یا حذف هر کدام دارد.

اتصال به دیتابیس با mysqli

Update توسط prepared Statement

با کلیک بروی گزینه عملیات ویرایش در لیست بالا ، فرم ویرایش کارکنان برای کاربر نمایش داده می شود . بعد از submit داده های ویرایش شده فرم ، prepared Statement برای اجرای دستور update ساخته می شود.

حتما بخوانید  افزودن ایموجی به سیستم نظرات توسط PHP

حذف توسط prepared Statement

در این قسمت از کد php اتصال به دیتابیس با mysqli ، به شما ساخت کوئری delete برای حذف یک سطر از جدول با استفاده از دستورات prepare شده را نشان می دهیم . این صفحه زمانی اجرا می شود که گزینه delete در لیست بالا انتخاب شده باشد . ID کارمند مورد با استفاده از متد GET به این صفحه ارسال می شود . این آی دی در کوئری مورد نظر برای حذف یک سطر مشخص استفاده می شود.

امیدوارم از آموزش اتصال به دیتابیس با mysqli لذت برده باشید.

برای دانلود سورس کد اتصال به دیتابیس با mysqli از قسمت زیر اقدام کنید

هر سوالی داشتید, از طریق قسمت نظرات ارسال کنید. سریعا, پاسخگوی سوالات شما هستیم.

موفق و پیروز باشید.

حسن شفیعی
مدرس ، پنتستر ، توسعه دهنده اپلیکیشن های تحت وب ، عضو مرکز حامی نخبگان و از مدیران و اعضای رسمی تیم امنیتی آشیانه هستم . علاقه خاصی به زبان های تحت وب, امنیت شبکه و لینوکس دارم و هر روز تلاش می کنم به این حوزه ها مسلط تر شوم و اطلاعاتم را در وب به اشتراک بگذارم

دیدگاه کاربران

avatar
3 دیدگاه ها
3 پاسخ ها
0 دنبال کننده ها
 
دیدگاه با بیشترین پاسخ
پرطرفدارترین دیدگاه ها
4 تعداد نویسندگان دیدگاه
حسن شفیعیzahramohammadیاسین نویسنده های اخیر دیدگاه
zahra
zahra

سلام خسته نباشید
من یه منو با html ساختم که میخوام وقتی روی هر کدوم از optionها کلیک میکنم عکس های مربوط به اون موضوع خاص رو نمایش بده میشه لطفا راهنمایی کنین ممنون.

mohammad
mohammad

سلام
برای جلوگیری ازsql injection در mysqli کد خاصی باید نوشت چون دستورات جلوگیری از injection در mysql تو mysqli کار نمیکنه و خطا میده

یاسین
یاسین

سلام و خسته نباشید. من با استفاده از دستور زیر میام و تعداد تیکت های یک یوزر رو میکشم بیرون : require 'db.php'; $check1 = mysqli_query($conn,"SELECT COUNT(*) as ok FROM list WHERE username='$username'"); $row1 = mysqli_fetch_assoc($check1); if (mysqli_num_rows($check1)>0) { $satr = $row1["ok"]; } 123456 require 'db.php';  $check1 = mysqli_query($conn,"SELECT COUNT(*) as ok FROM list WHERE username='$username'");  $row1 = mysqli_fetch_assoc($check1);  if (mysqli_num_rows($check1)>0) {    $satr = $row1["ok"];  } و با این دستور میگم اگه برابر صفر نبود چاپ کنه : $check = mysqli_query($conn,"SELECT * FROM command WHERE username='$username'"); $row = mysqli_fetch_assoc($check); if (mysqli_num_rows($check)>0) { $_SESSION['id'] = $row["id"]; $_SESSION['title'] = $row["title"]; $_SESSION['pm'] = $row["pm"]; $_SESSION['lock'] = $row["lock"]; }… نمایش بیشتر

دانلود رایگان (هدیه ویژه)

کتاب آموزش زبان برنامه نویسی PHP را دانلود و همین امروز یادگیری را شروع کن و به جمع برنامه نویسان ملحق شو ;)

دانلود رایگان کتاب

سورس فروشگاهی دیجی کالا

بخش کاربران

هنوز عضو نیستید ؟ کلیک کنید

مجوزهای ما

logo-samandehi

دانلود کتاب

عضویت رایگان خبرنامه

تخفیف 70 هزار تومانی برای آپدیت جدید سورس فروشگاهی دیجی کالا - کد تخفیف : np70
ثانیه
دقیقه
ساعت
روز
خرید محصول