在本指南中,我们将讨论如何在 Linux 的 XAMPP 中使用 PHP 对 MySQL 数据库表执行 DELETE、TRUNCATE 和 DROP 操作。
在进入主题之前,让我们了解 Delete、Truncate 和 Drop 命令之间的区别。
内容
DROP、TRUNCATE 和 DELETE 命令的区别
下表显示了什么是 DELETE、TRUNCATE、DROP 命令以及何时使用它们。
降低 | 截短 | 删除 |
降低 将删除整个表(行和结构列)。 | 截短 删除表中的所有行,结构(列)将保持不变。 | 删除 用于根据指定的条件删除特定行 WHERE 条款 |
句法:DROP TABLE table_name |
句法:TRUNCATE TABLE table_name |
句法:DELETE FROM table_name WHERE condition |
DROP 是一种数据定义语言 (DDL) 命令 | TRUNCATE 是一种数据定义语言 (DDL) 命令 | DELETE 是一种数据操作语言 (DML) 命令 |
DROP & TRUNCATE 在计算方面是相等的。 | TRUNCATE 比 DELETE 快。 | DELETE 比 TRUNCATE 慢。 |
WHERE 不使用从句。 |
WHERE 不使用从句。 |
WHERE 使用从句。 |
当您不再需要桌子时使用它。 | 当你想清空一个表时使用它。 | 当您想从表中删除某些记录时使用此选项。 |
删除与截断与删除
简而言之,
- DELETE 将删除特定记录,
- TRUNCATE 将删除所有记录但不会删除表,
- 并且 DROP 将删除整个表。
先决条件
出于演示目的,我创建了一个名为 “销售量” 在一个名为的 MySQL 数据库中 “我的公司” 有以下记录。
ID | 姓名 | 数数 |
1 | 烹饪气体 | 40 |
5 | 洗发水 | 10 |
2 | 牛奶 | 20 |
3 | 图书 | 14 |
4 | 巧克力 | 45 |
6 | 蛋 | 12 |
来自销售表的记录
小心: 在 XAMPP 中,数据库和表名不区分大小写。 它将仅将大写/小写视为小写。
如果您尚未创建数据库和表,请参阅以下指南。
- 在 XAMPP 中使用 PHP 创建 MySQL 数据库和表
编写 PHP 代码的步骤
1. 在您的 PHP 代码中指定服务器名称、用户名、密码和数据库名称。
2. 使用创建连接 mysqli_connect()
功能。
代码:
$connection = mysqli_connect($server_name, $user_name, $password, $database_name);
3. 检查连接使用 mysqli_connect_error()
中指定的功能 if
健康)状况。 如果连接失败,此函数将表示错误。 这是一个可选步骤。
4. 指定 SQL 查询以使用 DELETE/DROP/TRUNCATE 命令从表中删除特定行。
5. 使用 mysqli_multi_query()
检查值是否被删除的函数。
句法:
mysqli_multi_query($connection, $query)
这里,
$connection
指定连接详细信息,$query
是sql查询。
如果这是 True,则删除该记录。 否则会返回错误。 我们可以使用 mysqli_error($connection) 函数来检查错误。
6. 使用关闭连接 mysqli_close()
功能。
句法:
mysqli_close($connection);
让我们通过一个示例来讨论每个命令的用法。
使用 PHP 从 MySQL 表中删除行
DELETE 命令用于从表中删除特定行。
查询语法:
DELETE FROM table_name where condition;
示例代码:
在本例中,我们将删除 id=3.
创建一个名为的纯文本文件 delete.php
在下面 /htdocs
包含以下内容的文件夹。
小心: 如果您使用 Linux,则 文档 文件夹将在 /opt/lampp/
目录。 如果您使用的是 Windows,则 文档 通常会在 C:xampp 文件夹。
<?php //specify the server name $server_name = "localhost"; //specify the username $user_name = "root"; //specify the password - Here, the password is empty $password = ""; //specify the database name $database_name = "my_company"; // Creating the connection by specifying the connection details $connection = mysqli_connect($server_name, $user_name, $password, $database_name); //delete record with id-3 $query = "DELETE FROM sales where id=3"; if (mysqli_multi_query($connection, $query)) { echo "record deleted Successfully"; } else { echo "Error:" . mysqli_error($connection); } //close the connection mysqli_close($connection); ?>
打开您的网络浏览器并导航到 https://localhost/delete.php. 您将在浏览器窗口中看到这样的输出。
您可以验证该行是否真的从 PhpMyAdmin 仪表板中删除。
通过从浏览器导航到 https://localhost/phpmyadmin URL 打开 phpMyAdmin 仪表板。
单击浏览以查看剩余记录。
如您所见,id=3 的行不见了。
使用 PHP 截断 MySQL 表
TRUNCATE 命令用于从 MySQL 数据库表中删除所有行。
查询语法:
TRUNCATE TABLE table_name;
示例代码:
在此示例中,我们将删除所有行。
创建一个名为 truncate.php
有以下内容。
<?php //specify the server name $server_name = "localhost"; //specify the username $user_name = "root"; //specify the password - it is empty $password = ""; //specify the database name $database_name = "my_company"; // Creating the connection by specifying the connection details $connection = mysqli_connect($server_name, $user_name, $password, $database_name); //delete all records $query = "TRUNCATE table sales"; if (mysqli_multi_query($connection, $query)) { echo "Truncated Successfull"; } else { echo "Error:" . mysqli_error($connection); } //close the connection mysqli_close($connection); ?>
导航 https://localhost/truncate.php 来自您的网络浏览器的文件。 你会看见 “截断成功” 浏览器窗口中的消息。
转到 phpMyAdmin 仪表板并单击浏览以查看是否存在任何记录。
正如您在上面的屏幕截图中看到的,所有记录都被删除。
使用 PHP 删除 MySQL 表
DROP 命令用于删除整个表。
查询语法:
DROP TABLE table_name;
示例代码:
在此示例中,我们将删除整个表及其结构(行和列)。
创建一个名为 drop.php
内容如下:
<?php //specify the server name $server_name = "localhost"; //specify the username $user_name = "root"; //specify the password - it is empty $password = ""; //specify the database name $database_name = "my_company"; // Creating the connection by specifying the connection details $connection = mysqli_connect($server_name, $user_name, $password, $database_name); $query = "DROP table sales"; if (mysqli_multi_query($connection, $query)) { echo "Dropped Successfully"; } else { echo "Error:" . mysqli_error($connection); } //close the connection mysqli_close($connection); ?>
打开您的网络浏览器并导航到 https://localhost/drop.php 你会看到 “成功掉线” 信息。
转到 phpMyAdmin 并检查该表是否存在。
是的,在 my_company 数据库中没有名为“sales”的表。 我们刚刚使用 DROP 命令删除了它。
结论
在本步骤指南中,我们讨论了三个 MySQL 命令,即 DELETE、TRUNCATE 和 DROP。 使用这三个命令,我们向您展示了如何从 MySQL 表中删除单行,删除表中的所有行,最后使用 PHP 删除整个表。
Delete RowsDrop TableLinuxMySQLMySQL 命令PHPPHP MySQLProgrammingTruncate TableXAMPP