آموزش دستور delete در php

ارسال شده توسط: حسین درویشی Comments: 0

آموزش دستور delete در php

عمل درج، ویرایش و حذف یکی از سه عمل اصلی در Mysql محسوب می شوند. کار با هرکدام از این عمل ها بسیار آسان است. در ادامه با دستور delete در php آشنا خواهید شد.

ساختار دستور حذف در Mysql بشکل زیر است:

DELETE FROM table_name
WHERE some_column = some_value

اگر دستور شما بدون شرط باشد کل داده های جدول پاک خواهد شد. یعنی بشکل زیر:

DELETE FROM table_name

اما چطور می توان عمل حذف در php را انجام داد؟ سوالی است که در ادامه به آن پاسخ دادیم.

دستور DELETE در php

دو روش برای اینکار وجود دارد:

روش اول استفاده ازکلاس mysqli

روش دوم استفاده از کلاس PDO

استفاده از روش اول امنیت پایینی نسبت به PDO دارد. یکی از مشکلات آن، مشکل SQL enjection است. البته این مشکلات با روش های گوناگونی قابل رفع هستند. مثلاً مشکل SQL enjection با متد mysqli_real_escape_string() قابل رفع است. با این حال بازهم زیاد امن نیست و بجای آن باید از PDO استفاده کرد.

دستور حذف با mysqli در php

در این روش ابتدا باید کلاس mysqli را صدا بزنید. و یک کانکشن بسازید. البته برای برای ساختن کانکسشن این کار کافی نیست و باید چهارتا پارامتر را بشکل زیر به آن پاس دهید.

$servername = "localhost"; //نام سرور
$username = "username"; // نام کاربری دیتابیس
$password = "password"; //رمزعبور دیتابیس
$dbname = "myDB"; //نام دیتابیس
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

حال کانکش ساخته شده و اطلاعات لازم در متغیر conn ذخیره شده است.

بعد از ساخت کانکشن نوبت به نوشتن کوئری مورد نظر می رسد:

$sql = "DELETE FROM MyGuests WHERE id=3";

کوئری نوشته شده رو در متغیر sql قرار دادیم. حال باید این متغیر را اجرا کنیم: اجرای این کوئری با متد query از کلاس mysqli انجام می شود.

$conn->query($sql)

روش دوم حذف با کلاس PDO

دستور حذف با کلاس PDO در php

ساخت کانکشن در کلاس نیز مانند کلاس mysqli نیاز به چهارتا پارامتر دارد، منتهی نحوه پاس داده این پارامترها به این کلاس بشکل زیر است:

$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

پس از ساخت کانکشن نوبت به نوشتن کوئری می رسد:

$sql = "DELETE FROM MyGuests WHERE id=3";

کوئری نوشته شده با تابع exec() از کلاس PDO قابل اجرا است. این متد هیچ مقدار بازگشتی ندارد و بنابراین از نتیجه اجرای آن نمی توانید مطلع شوید. اما نگران نباشید برای این مشکل هم می توانید کد بعدی استفاده کنید:

$conn->exec($sql);
<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// sql to delete a record
$sql = "DELETE FROM MyGuests WHERE id=3";
// use exec() because no results are returned
$conn->exec($sql);
echo "Record deleted successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
برای امتیاز به این نوشته کلیک کنید!
[کل: 1 میانگین: 2]

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *