「PHP系列」PHP MySQL Order By/Update/Delete

embedded/2024/9/25 23:22:43/

文章目录

  • 一、PHP MySQL Order By
  • 二、PHP MySQL Update
  • 三、PHP MySQL Delete
  • 四、相关链接

一、PHP MySQL Order By

在 PHP 中使用 MySQL 时,如果你想要按照某个字段(或字段的组合)对查询结果进行排序,你可以使用 ORDER BY 子句。ORDER BY 子句允许你指定一个或多个字段,并指定排序方向(升序 ASC 或降序 DESC)。

以下是一个简单的示例,说明如何在 PHP 中使用 MySQL 的 ORDER BY 子句:

  1. 设置数据库连接(这里假设你已经有一个有效的 MySQL 数据库连接):
php">$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}
  1. 执行带有 ORDER BY 的查询

假设你有一个名为 students 的表,其中有一个名为 last_name 的字段,你想要按照 last_name 对学生进行升序排序:

php">$sql = "SELECT * FROM students ORDER BY last_name ASC";
$result = $conn->query($sql);if ($result->num_rows > 0) {// 输出数据while($row = $result->fetch_assoc()) {echo "ID: " . $row["id"]. " - Name: " . $row["last_name"]. "<br>";}
} else {echo "0 结果";
}
$conn->close();

如果你想要按照降序排序,只需将 ASC 替换为 DESC

php">$sql = "SELECT * FROM students ORDER BY last_name DESC";
  1. 按多个字段排序

如果你想要首先按照 last_name 升序排序,然后在 last_name 相同的情况下按照 first_name 升序排序,你可以这样做:

php">$sql = "SELECT * FROM students ORDER BY last_name ASC, first_name ASC";
  1. 注意:始终确保你的查询是安全的,特别是当你从用户输入中获取数据时。使用预处理语句和绑定参数可以防止 SQL 注入攻击。

二、PHP MySQL Update

在 PHP 中使用 MySQL 更新数据通常涉及以下步骤:

  1. 设置数据库连接:首先,你需要建立与 MySQL 数据库的连接。
  2. 构建 UPDATE 语句:然后,你需要构建一个包含 UPDATE 语句的 SQL 查询,该语句将指定要更新的表、要更新的字段以及新值。
  3. 执行 SQL 查询:使用 PHP 的 MySQLi 或 PDO 扩展执行 SQL 查询。
  4. 检查执行结果:检查查询是否成功执行,并处理任何可能出现的错误。
  5. 关闭数据库连接(可选):在完成所有数据库操作后,可以关闭数据库连接以释放资源。

以下是一个使用 PHP 和 MySQLi 扩展更新 MySQL 数据的示例:

php"><?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}// 要更新的数据
$id = 1; // 假设这是你要更新的记录的 ID
$newLastName = "NewLastName";// 构建 UPDATE 语句
$sql = "UPDATE students SET last_name='$newLastName' WHERE id=$id";// 执行 SQL 语句
if ($conn->query($sql) === TRUE) {echo "记录更新成功";
} else {echo "Error updating record: " . $conn->error;
}// 关闭连接
$conn->close();
?>

注意

  • 在上面的示例中,我们直接将变量插入 SQL 查询中。这在实际应用中是不安全的,因为它容易受到 SQL 注入攻击。为了避免这种风险,你应该使用预处理语句和参数绑定。
  • 预处理语句和参数绑定的示例如下:
php">// 预处理 SQL 语句
$stmt = $conn->prepare("UPDATE students SET last_name=? WHERE id=?");// "i" 表示整数,"s" 表示字符串
$stmt->bind_param("is", $id, $newLastName);// 设置参数并执行
$id = 1;
$newLastName = "NewLastName";
$stmt->execute();// 检查执行结果
if ($stmt->affected_rows > 0) {echo "记录更新成功";
} else {echo "Error updating record";
}// 关闭语句和连接
$stmt->close();
$conn->close();

使用预处理语句和参数绑定可以确保你的代码是安全的,并且可以防止 SQL 注入攻击。

三、PHP MySQL Delete

在 PHP 中使用 MySQL 删除数据通常涉及以下步骤:

  1. 设置数据库连接:首先,你需要建立与 MySQL 数据库的连接。
  2. 构建 DELETE 语句:然后,你需要构建一个包含 DELETE 语句的 SQL 查询,该语句将指定要从中删除数据的表以及用于选择要删除记录的条件。
  3. 执行 SQL 查询:使用 PHP 的 MySQLi 或 PDO 扩展执行 SQL 查询。
  4. 检查执行结果:检查查询是否成功执行,并处理任何可能出现的错误。
  5. 关闭数据库连接(可选):在完成所有数据库操作后,可以关闭数据库连接以释放资源。

以下是一个使用 PHP 和 MySQLi 扩展从 MySQL 数据库中删除数据的示例:

php"><?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}// 要删除的数据的 ID
$id = 1; // 假设这是你要删除的记录的 ID// 构建 DELETE 语句
$sql = "DELETE FROM students WHERE id=$id";// 执行 SQL 语句
if ($conn->query($sql) === TRUE) {echo "记录删除成功";
} else {echo "Error deleting record: " . $conn->error;
}// 关闭连接
$conn->close();
?>

注意

  • 在上面的示例中,我们直接将变量 $id 插入 SQL 查询中。这在实际应用中是不安全的,因为它容易受到 SQL 注入攻击。为了避免这种风险,你应该使用预处理语句和参数绑定。

使用预处理语句和参数绑定的示例如下:

php">// 预处理 SQL 语句
$stmt = $conn->prepare("DELETE FROM students WHERE id=?");// "i" 表示整数
$stmt->bind_param("i", $id);// 设置参数并执行
$id = 1;
$stmt->execute();// 检查执行结果
if ($stmt->affected_rows > 0) {echo "记录删除成功";
} else {echo "Error deleting record";
}// 关闭语句和连接
$stmt->close();
$conn->close();

使用预处理语句和参数绑定可以确保你的代码是安全的,并且可以防止 SQL 注入攻击。在实际应用中,你应该始终使用这种方法来处理用户输入或任何不可信的数据。

四、相关链接

  1. PHP官网
  2. MySQL官网
  3. PHP_Github
  4. PHP实现Token
  5. 「PHP系列」PHP简介与起步
  6. 「PHP系列」PHP语法介绍
  7. 「PHP系列」PHP变量
  8. 「PHP系列」PHP echo/print语句、数据类型详解
  9. 「PHP系列」PHP 常量/字符串、类型比较
  10. 「PHP系列」PHP 运算符详解
  11. 「PHP系列」If…Else语句/switch语句
  12. 「PHP系列」数组详解
  13. 「PHP系列」PHP数组排序及运用场景

http://www.ppmy.cn/embedded/37525.html

相关文章

AutoDev for VSCode 预览版:精准 AI 编程提示词与编辑器的完美融合

在过去的一个月里&#xff0c;我在休着陪产假、看娃的同时&#xff0c;也在闲暇时间里设计了 AutoDev for VSCode 的架构。 我们将 AutoDev for Intellij IDEA 平台的非凡开发者体验带到了 VSCode 平台。在 IDEA 版本中通过构建非常精准的提示词&#xff0c;以及与编辑器的完美…

GPS与精致农业 无人机应用 农业遥感 农业类

全球定位系统是美国国防部主要为满足军事部门对海上、陆地和空中设施进行高精度导航和定位的要求而建立的。GPS系统最基本的特点是以“多星、高轨、高频、测量-测距”为体制&#xff0c;以高精度的原子钟为核心。GPS作为新一代卫星导航与定位系统&#xff0c;不仅具有全球性、全…

[嵌入式系统-69]:RT-Thread-组件:网络组件“组”,RT-Thread系统通向外部网络世界的入口

目录 RT-Thread 提供的网络世界入口 - 网络组件 1. 总概 2. AT 3. Lwip&#xff1a; 轻量级IP协议栈 4. W5500 5. Netdev 6. RT-Thread SAL&#xff08;Socket Abstraction Layer&#xff09;套接字和BSD套接字区别 RT-Thread SAL 套接字接口示例 BSD 套接字接口示例 …

数据结构-线性表-应用题-2.2-5

从顺序表中删除其值在给定值s与t之间&#xff08;包括s和t&#xff0c;且s<t&#xff09;的所有元素&#xff0c;若s或t不合理或顺序表为空&#xff0c;则显示出错信息并退出运行。 从前往后扫描顺序表L&#xff0c;用k记录元素值在[s,t]的元素的个数&#xff0c;对于不在其…

DAY 2

winget.cpp #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {this->resize(540,415);this->setFixedSize(540,415);//窗口标题this->setWindowTitle("盗版QQ");//窗口图标this->setWindowIcon(QIcon("E:\\qq\\pi…

HALPWM配置占空比频率2按键控制思路

title: HALPWM配置占空比频率 tags: STM32ClionHal 控制pwm开关 //启动定时器 HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim);//关闭定时器 HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim);//启动指定通道PWM HAL_StatusTypeDef HAL_TIM_P…

【Apache POI】Apache POI-操作Excel表格-简易版

Catalog Apache POI-操作Excel表格1. 需求2. 优点3. 缺点4. 应用场景5. 使用方法6. SpringBoot工程中处理Excel表格7. Demo示例 Apache POI-操作Excel表格 1. 需求 大多数项目的在运营过程中&#xff0c;会产生运营数据&#xff0c;如外卖系统中需要统计每日的订单完成数、每…

[力扣题解]39. 组合总和

题目&#xff1a;39. 组合总和 思路 回溯法 代码&#xff0c;自己写的 // 自己写的 // 没有用 startindex 也可以实现&#xff01; class Solution { public: vector<vector<int>> result;vector<int> path;void function(vector<int>& candid…