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表中删除数据。