آموزش دستور 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;
?>
دیدگاهتان را بنویسید