摘要:在本教程中,您将学习如何使用 PHP PDO 从 MySQL 数据库表中删除数据。
我们将使用示例数据库中的tasks
表进行演示。在继续本教程之前,您应该按照PHP MySQL 创建表教程创建tasks
表并插入示例数据进行练习。
请参阅下面的任务表。
要删除表中的数据,请使用以下步骤:
- 通过创建 PDO 对象的新实例连接到 MySQL 数据库。
- 构造DELETE 语句以删除表中的一行、多行或所有行。如果要快速且更高效地删除大表中的所有行,可以使用TRUNCATE TABLE语句。
- 通过调用
PDO
对象的exec()
方法或PDOStatement
对象的execute()
方法来执行DELETE
语句。
PHP MySQL 删除数据示例
PHP MySQL:删除单行示例
要删除表中的单行,请使用带有WHERE 子句的DELETE
语句来指定要删除的行。
以下脚本删除tasks
表中 id 为 2 的行。
<?php
/**
* PHP MySQL Delete Data Demo
*/
class DeleteDataDemo {
const DB_HOST = 'localhost';
const DB_NAME = 'classicmodels';
const DB_USER = 'root';
const DB_PASSWORD = '';
/**
* PDO instance
* @var PDO
*/
private $pdo = null;
/**
* Open a database connection to MySQL
*/
public function __construct() {
// open database connection
$conStr = sprintf("mysql:host=%s;dbname=%s", self::DB_HOST, self::DB_NAME);
try {
$this->pdo = new PDO($conStr, self::DB_USER, self::DB_PASSWORD);
} catch (PDOException $e) {
die($e->getMessage());
}
}
/**
* Delete a task based on a specified task id
* @param int $id
* @return bool true on success or false on failure
*/
public function delete($id) {
$sql = 'DELETE FROM tasks
WHERE task_id = :task_id';
$q = $this->pdo->prepare($sql);
return $q->execute([':task_id' => $id]);
}
/**
* close the database connection
*/
public function __destruct() {
$this->pdo = null;
}
}
$obj = new DeleteDataDemo();
// delete id 2
$obj->delete(2);
Code language: HTML, XML (xml)
怎么运行的。
在DeleteDataDemo
类的__construct()
方法中,我们通过启动PDO
类的实例来连接到MySQL数据库,并在__destruct()
方法中,我们关闭数据库连接。
delete()
方法接受id
作为参数。首先,我们调用PDO
对象的prepare()
方法来准备执行DELETE
语句,然后将包含与DELETE
语句中指定占位符相对应的值的数组传递给PDOStatement
对象的execute()
方法。
要删除 id 为 2 的任务,我们创建一个DeleteDataDemo
类的实例并调用delete()
方法。
PHP MySQL:删除表中的所有行示例
有两种方法可以删除表中的所有行:
- 发出不带WHERE 子句的
DELETE
语句。 - 发出
TRUNCATE TABLE
语句。
以下deleteAll()
方法使用DELETE
语句删除tasks
表中的所有行:
<?php
/**
* Delete all rows in the tasks table
*/
public function deleteAll(){
$sql = 'DELETE FROM tasks';
return $this->pdo->exec($sql);
}
Code language: HTML, XML (xml)
以下truncateTable()
方法删除tasks
表中的所有行并重置其自动增量列的值:
<?php
/**
* Truncate the tasks table
*/
public function truncateTable() {
$sql = 'TRUNCATE TABLE tasks';
return $this->pdo->exec($sql);
}
Code language: PHP (php)
您可以通过以下链接下载本教程的源代码:
在本教程中,我们向您展示了如何使用 PHP PDO 从 MySQL 表中删除数据。
本教程有帮助吗?