حذف اطلاعات یک جدول با استفاده از MySQLi و PDO
دستور DELETE FROM برای حذف رکورد از یک جدول استفاده می شود.
نحوه استفاده:
DELETE FROM table_name
WHERE some_column = some_value
نکته: قسمت WHERE مشخص می کند که چه رکورد یا رکوردهایی باید حذف بشوند، توجه داشته باشید که اگر این قسمت را در نظر نگیرید کلیه رکوردهای جدول حذف می شوند.
برای کسب اطلاعات بیشتر در مورد SQL، به لینک روبرو مراجعه فرمایید: آموزش SQL-مقدمه
به جدول "MyGuests" که در فصل های قبلی همین آموزش ایجاد شده است توجه کنید:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | John | Doe | 2014-10-22 14:26:15 | |
2 | Mary | Moe | 2014-10-23 10:22:30 | |
3 | Julie | Dooley | 2014-10-26 10:48:23 |
در مثال زیر، رکوردی که id آن برابر با 3 است در جدول "MyGuests" حذف خواهد شد:
مثال(MySQLi Object-oriented)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// ایجاد ارتباط
$conn = new mysqli($servername, $username, $password, $dbname);
// اطمینان از صحت ارتباط
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// تنظیم کوئری حذف
$sql = "DELETE FROM MyGuests WHERE id=3";
if ($conn->query($sql) === TRUE) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . $conn->error;
}
$conn->close();
?>
مثال(MySQLi Procedural)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// ایجاد ارتباط
$conn = mysqli_connect($servername, $username, $password, $dbname);
// اطمینان از صحت ارتباط
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
// تنظیم کوئری حذف
$sql = "DELETE FROM MyGuests WHERE id=3";
if (mysqli_query($conn, $sql)) {
echo "Record deleted successfully";
} else {
echo "Error deleting record: " . mysqli_error($conn);
}
mysqli_close($conn);
?>
مثال(PDO)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// تنظیم حالت برخورد با خطاها
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// تنظیم کوئری حذف
$sql = "DELETE FROM MyGuests WHERE id=3";
// بدلیل اینکه کوئری نتیجه ای را برنمی گرداند از تابع زیر استفاده می کنیم
$conn->exec($sql);
echo "Record deleted successfully";
}
catch(PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
?>
نتیجه کار بعد از حذف رکورد:
id | firstname | lastname | reg_date | |
---|---|---|---|---|
1 | John | Doe | 2014-10-22 14:26:15 | |
2 | Mary | Moe | 2014-10-23 10:22:30 |
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
من یه فروشگاه اینترنتی ساختم که کاربر بعد از ورود به پنل , داخل یک جدول محصولات مورد علاقه خودش رو که قبلا توی پایگاه داده ثبت کرده میبینه حالا میخواستم بدونم چطور میشه یه گزینه delete جلوی هر محصول اضافه کنم که کاربر بتونه هر محصولی که دوست داره رو از جدول حذف کنه ؟
برای این کار روشهای مختلف وجود داره.
اما هر کدوم از این روشها رو که شما استفاده کنید، در نهایت باید یه درخواست یا در واقع یه کوئری به دیتابیس و سرور بزنید.
یکی از روشها استفاده از لینک هست. توسط لینک شما میتوند ID محصور رو به صفحه ی خاصی بفرستید و سپس با استفاده از دستور Delete محصول رو برای کاربر موردنظر پاک کنید.
روش دوم استفاده کنترل Checkbox هست، به طوری که کنار هر محصول یه چک باکس با مقدار ID محصول بذارید. بعد از ارسال درخواست کاربر، محصولاتی که ID آنها توسط چک باکس ارسال میشود رو از جدول حذف کنید.
beyamooz.com/project-based-php/%D9%BE%D8%B1%D9%88%DA%98%D9%87-%D8%B1%D8%B2%D8%B1%D9%88-%D9%87%D8%AA%D9%84-%D8%AF%D8%B1-php