PHP MySQL:删除数据
简介:在本教程中,您将学习如何使用PHP PDO从MySQL数据库表中删除数据。
我们将使用示例数据库中的任务表进行演示。
在继续本教程之前,您应该遵循PHP MySQL创建表教程来创建任务表并插入示例数据以进行练习。
请参阅以下任务表。
要删除表中的数据,请使用以下步骤:
通过创建PDO对象的新实例连接到MySQL数据库。
构造DELETE语句以删除表中的一行,多行或所有行。
如果要快速高效地删除大表中的所有行,请使用TRUNCATE TABLE语句。通过调用PDO对象的exec()方法或PDOStatement对象的execute()方法来执行DELETE语句。
PHP MySQL删除数据示例
PHP MySQL:删除单行示例
要删除表中的单个行,请使用带有WHERE子句的DELETE语句,该子句指定要删除的行。
以下脚本在任务表中删除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);
这个怎么运作。
在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语句删除任务表中的所有行:
<?php
/**
* Delete all rows in the tasks table
*/
public function deleteAll(){
$sql = 'DELETE FROM tasks';
return $this->pdo->exec($sql);
}
以下truncateTable()方法将删除任务表中的所有行,并重置其自动增量列的值:
<?php
/**
* Truncate the tasks table
*/
public function truncateTable() {
$sql = 'TRUNCATE TABLE tasks';
return $this->pdo->exec($sql);
}
您可以通过以下链接下载本教程的源代码:
下载PHP MySQL删除源代码
在本教程中,我们向您展示了如何使用PHP PDO从MySQL表中删除数据。

