English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تدريس پایه PHP

تدريس پیشرفته PHP

PHP & MySQL

كتاب مرجع PHP

حذف MySQL

در این آموزش، یاد خواهید گرفت که چگونه از طریق PHP رکوردها را از جدول MySQL حذف کنید.

حذف داده‌های جدول پایگاه داده

مانند اینکه رکوردها را به جدول اضافه کنید، می‌توانید از SQL برای DELETEاین دستور رکوردها را از جدول حذف می‌کند. معمولاً با شرط WHERE استفاده می‌شود تا فقط رکوردهایی که با شرایط خاصی مطابقت دارند یا شرایط خاصی دارند، حذف شوند.

باستانی برای دستور DELETE می‌توان به صورت زیر نوشت:

DELETE FROM table_name WHERE column_name=some_value

اجازه دهید از دستور DELETE و شرط WHERE برای یک جستجوی SQL استفاده کنیم، سپس این جستجو را از طریق تابع PHP mysqli_query() اجرا کنیم تا رکوردهای جدول را حذف کنیم. به جدول persons در پایگاه داده demo نگاه کنید:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email                |
+----+------------+-----------+----------------------+
|  1 | Peter      | Parker    | [email protected] |
| 2 | John       | Rambo     | [email protected]   |
|  3 | Clark      | Kent      | [email protected]   |
| 4 | John       | Carter    | [email protected]  |
|  5 | Harry      | Potter    | [email protected] |
+----+------------+-----------+----------------------+

در مثال زیر، کد PHP موجود در جدول persons از طریق اینترنت حذف می‌شودfirst_nameسجلات کسانی که با جان مشابه هستند.

مثال: طریقه پروسیجر

<?php
/*حاول الاتصال بخادم MySQL. افترض أنك تقوم بتشغيل MySQL.
خادم به تنظیمات پیش‌فرض (مستخدم بدون پسورد "root") */
$link = mysqli_connect("localhost", "root", "", "demo");
 
//检查连接
if($link === false){
    die("خطأ: لا يمكن الاتصال." . mysqli_connect_error());
}
 
//尝试执行删除
$sql = "DELETE FROM persons WHERE first_name='John'";
if(mysqli_query($link, $sql)){
    echo "السجلات تم حذفها بنجاح.";
} else{
    echo "خطأ: لا يمكن تنفيذ $sql." . mysqli_error($link);
}
 
//إغلاق الاتصال
mysqli_close($link);
?>

مثال: طریقه اوبجکتی

<?php
/*حاول الاتصال بخادم MySQL. افترض أنك تقوم بتشغيل MySQL.
خادم به تنظیمات پیش‌فرض (مستخدم بدون پسورد "root") */
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//检查连接
if($mysqli === false){
    die("خطأ: لا يمكن الاتصال." . $mysqli->connect_error);
}
 
//尝试执行删除
$sql = "DELETE FROM persons WHERE first_name='John'";
if($mysqli->query($sql) === true){
    echo "السجلات تم حذفها بنجاح.";
} else{
    echo "خطأ: لا يمكن تنفيذ $sql. " . $mysqli->error;
}
 
//إغلاق الاتصال
$mysqli->close();
?>

مثال: طريقة PDO

<?php
/*حاول الاتصال بخادم MySQL. افترض أنك تقوم بتشغيل MySQL.
خادم بناءً على إعدادات افتراضية (مستخدم بدون كلمة مرور "root")*/
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //ضبط نمط الأخطاء PDO على استثنائية
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("خطأ: لا يمكن الاتصال. " . $e->getMessage());
}
 
//حاول تنفيذ الاستعلام
try{
    $sql = "DELETE FROM persons WHERE first_name='John'";  
    $pdo->exec($sql);
    echo "السجلات تم حذفها بنجاح.";
} catch(PDOException $e){
    die("خطأ: لا يمكن تنفيذ $sql. " . $e->getMessage());
}
 
//إغلاق الاتصال
unset($pdo);
?>

بعد الحذف،personsسيكون الجدول كما يلي:

+----+------------+-----------+----------------------+
| id | first_name | last_name | email                |
+----+------------+-----------+----------------------+
|  1 | Peter      | Parker    | [email protected] |
|  3 | Clark      | Kent      | [email protected]   |
|  5 | Harry      | Potter    | [email protected] |
+----+------------+-----------+----------------------+

كما ترون، تم حذف السجلات بنجاح من الجدول persons.

تحذير:جملة WHERE في جملة DELETE تحدد ما يجب حذفه من السجلات. إذا تم تجاهل جملة WHERE، سيتم حذف جميع السجلات.