حذف داده (MySQL Delete Data)
در «حذف داده (Delete)» رکورد پاک می شود. «رکورد (Record)» یعنی یک سطر از جدول. دقت کن؛ چون بدون «شرط Where» ممکن است همه چیز پاک شود.
الگوی دستور DELETE
الگو ساده است. اما حتماً Where بگذار تا هدف دقیق شود.
DELETE FROM table_name;
WHERE some_column = some_value;
هشدار: اگر WHERE را حذف کنی، همه رکوردها پاک می شوند!
حذف با MySQLi (شی گرا)
در این نمونه، رکورد با id=3 پاک می شود. اتصال را چک کن. سپس دستور را اجرا کن.
<?php
$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 (رویه ای)
همان کار را با سبک رویه ای انجام می دهیم. باز هم WHERE یادت نرود.
<?php
$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
در PDO، حالت خطا را استثنا می گذاریم. سپس با exec حذف می کنیم.
<?php
$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;
?>
گام های عملی حذف امن
- از جدول نسخه پشتیبان بگیر.
- WHERE مناسب بنویس و دوبار چک کن.
- کوئری DELETE را اجرا کن.
- نتیجه را با SELECT بررسی کن.
نکته: قبل از DELETE، همان WHERE را با SELECT تست کن تا مطمئن شوی.
ادامه مسیر
- مرتب سازی (MySQL Order By) برای مرور چیدمان نتایج.
- شرط Where (MySQL Where) برای ساخت WHERE دقیق.
- به روزرسانی داده (MySQL Update) برای اصلاح رکورد به جای حذف.
جمع بندی سریع
- DELETE بدون WHERE خطرناک است.
- MySQLi و PDO هر دو پشتیبانی دارند.
- قبل از حذف، SELECT آزمایشی بزن.
- پس از حذف، نتیجه را بررسی کن.