首页 > 其他分享 >学习笔记12

学习笔记12

时间:2023-11-30 13:45:16浏览次数:42  
标签:语句 12 数据库 笔记 学习 SQL mysqli PHP 预处理

第十四章 MySQL数据库系统

PHP MySQL编程

  1. 数据库连接:使用PHP连接MySQL数据库,主要方法是使用MySQLi扩展或PDO扩展。通过建立数据库连接,可以实现与数据库的通信。

  2. 数据库操作:掌握创建、删除、修改和查询数据库表的操作。这包括表结构的定义(如字段类型、主键、外键等)、数据的插入、更新和删除等。

  3. 数据查询:使用SQL语句(如SELECT、INSERT、UPDATE、DELETE等)进行数据查询,可以实现对数据库中数据的检索和操作。在PHP中,可以使用MySQLi或PDO提供的查询方法进行数据查询。

  4. 数据处理:对查询结果进行处理,如数据排序、分页、数据转换等。在PHP中,可以使用内置函数或自定义函数对数据进行处理。

  5. 数据库事务:了解数据库事务的概念和用途,学会在PHP中使用事务处理。事务处理有助于保证数据的完整性和一致性。

  6. 数据库安全:掌握数据库安全措施,如预处理语句、参数化查询、防止SQL注入等。这可以有效避免应用程序遭受恶意攻击。

  7. 缓存技术:了解缓存的概念和用途,学会使用PHP中的缓存扩展(如Redis、Memcached等)。缓存技术可以提高应用程序的性能。

  8. 文件上传与下载:使用PHP实现文件上传和下载功能,掌握常用的文件上传和下载函数。

  9. 用户身份验证与授权:使用PHP和MySQL实现用户注册、登录验证和权限控制等功能。

  10. 错误处理与日志记录:在PHP中处理数据库操作过程中的错误,并记录日志。这有助于调试和排查问题。

  11. 性能优化:了解数据库性能优化的方法,如索引、查询优化等,以提高应用程序的性能。

  12. 项目实践:通过实际项目练习,熟悉PHP与MySQL编程的全过程,掌握项目开发的经验和技巧。

1. 使用PHP创建数据库表

  1. 准备数据库连接:首先需要建立PHP与MySQL数据库的连接。可以使用MySQLi或PDO扩展来实现。
  2. 创建数据库:使用SQL语句创建一个新的数据库。例如:CREATE DATABASE database_name;
  3. 创建数据库表:使用SQL语句定义数据库表的结构,包括表名、字段名、数据类型、主键、外键等。例如:
CREATE TABLE table_name (
    id INT(11) NOT NULL AUTO_INCREMENT,
    column1 VARCHAR(255) NOT NULL,
    column2 VARCHAR(255) NULL,
    PRIMARY KEY (id)
);
  1. 预处理语句:在执行SQL语句之前,使用预处理语句(如MySQLi的prepare()方法)可以防止SQL注入攻击。
// 准备语句
$stmt = $mysqli->prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
// 绑定参数
$stmt->bind_param("ss", $value1, $value2);
// 执行插入操作
$stmt->execute();
  1. 执行SQL语句:使用PHP内置的mysqli库或PDO库执行创建数据库表的SQL语句。
// 使用mysqli库执行SQL语句
$mysqli->query("CREATE TABLE table_name (...);");
// 或使用PDO库执行SQL语句
$stmt = $pdo->prepare("CREATE TABLE table_name (...);");
$stmt->execute();
  1. 验证结果:检查数据库表创建是否成功,可以利用数据库操作后的结果进行判断。例如,查询新创建的表是否存在。
$result = $mysqli->query("SHOW TABLES LIKE 'table_name';");
if ($result->num_rows > 0) {
    echo "数据库表创建成功!";
} else {
    echo "数据库表创建失败!";
}
  1. 错误处理:在执行数据库操作时,可能会遇到错误。需要使用PHP的错误处理机制(如mysqli库的error()方法)捕获并处理这些错误。
  2. 关闭数据库连接:在完成数据库操作后,记得关闭数据库连接,以释放资源。
$mysqli->close();

2. 使用PHP将记录插入表中

  1. 准备数据库连接:首先需要建立PHP与MySQL数据库的连接。可以使用MySQLi或PDO扩展来实现。
  2. 预处理语句:为防止SQL注入攻击,使用预处理语句(如MySQLi的prepare()方法)来准备插入记录的SQL语句。
// 准备语句
$stmt = $mysqli->prepare("INSERT INTO table_name (column1, column2) VALUES (?, ?)");
  1. 绑定参数:将实际要插入的数据作为参数绑定到预处理语句中,以避免SQL注入。
// 绑定参数
$stmt->bind_param("ss", $value1, $value2);
  1. 执行插入操作:使用预处理语句执行插入记录的操作。
// 执行插入操作
$stmt->execute();
  1. 关闭预处理语句:在完成插入操作后,关闭预处理语句以释放资源。
$stmt->close();
  1. 验证插入结果:检查记录是否成功插入,可以利用数据库操作后的结果进行判断。例如,查询新插入的记录是否存在。
$result = $mysqli->query("SELECT * FROM table_name WHERE column1 = ? AND column2 = ?", $value1, $value2);
if ($result->num_rows > 0) {
    echo "记录已成功插入!";
} else {
    echo "插入记录失败,请检查相关配置及数据。";
}
  1. 错误处理:在执行数据库操作时,可能会遇到错误。需要使用PHP的错误处理机制(如mysqli库的error()方法)捕获并处理这些错误。
  2. 关闭数据库连接:在完成数据库操作后,记得关闭数据库连接,以释放资源。
$mysqli->close();

3. 使用PHP进行更新操作

  1. 准备数据库连接:首先需要建立PHP与MySQL数据库的连接。可以使用MySQLi或PDO扩展来实现。
  2. 预处理语句:为防止SQL注入攻击,使用预处理语句(如MySQLi的prepare()方法)来准备更新记录的SQL语句。
// 准备语句
$stmt = $mysqli->prepare("UPDATE table_name SET column1 = ?, column2 = ? WHERE condition");
  1. 绑定参数:将实际要更新的数据作为参数绑定到预处理语句中,以避免SQL注入。
// 绑定参数
$stmt->bind_param("sss", $value1, $value2, $condition);
  1. 执行更新操作:使用预处理语句执行更新记录的操作。
// 执行更新操作
$stmt->execute();
  1. 关闭预处理语句:在完成更新操作后,关闭预处理语句以释放资源。
$stmt->close();
  1. 验证更新结果:检查记录是否成功更新,可以利用数据库操作后的结果进行判断。例如,查询更新后的记录是否存在。
$result = $mysqli->query("SELECT * FROM table_name WHERE condition", $value1, $value2);
if ($result->num_rows > 0) {
    echo "记录已成功更新!";
} else {
    echo "更新记录失败,请检查相关配置及数据。";
}
  1. 错误处理:在执行数据库操作时,可能会遇到错误。需要使用PHP的错误处理机制(如mysqli库的error()方法)捕获并处理这些错误。
  2. 关闭数据库连接:在完成数据库操作后,记得关闭数据库连接,以释放资源。
$mysqli->close();

苏格拉底挑战
image
image
image
image
image

标签:语句,12,数据库,笔记,学习,SQL,mysqli,PHP,预处理
From: https://www.cnblogs.com/1104dd/p/17867107.html

相关文章

  • P1081 [NOIP2012 提高组] 开车旅行
    题目有点长,一步一步来。预处理出每座城市两人分别会选择的下一座城市用set即可实现。倍增优化DP令\(f_{i,j}\)表示从城市\(j\)出发,行驶\(2^i\)天会到达的城市。令\(ga_{i,j}\)表示从城市\(j\)出发,行驶\(2^i\)天,小A行驶的路程。\(gb_{i,j}\)同理。答案枚......
  • EMG手势识别学习
    学习项目一:基于EMG和IMU融合信号的手势识别模型学习项目一简介:使用深度学习卷积神经网络实现手势识别......
  • 【必读】开发者必备!轻松学习MySQL事务的使用方法
    在日常开发中我们经常会遇到需要同时处理多个操作的情况,比如在购物时,我们需要同时完成支付和更新库存两个操作。这时,如果其中一个操作失败了,我们就需要进行回滚,以保证数据的一致性。那么,如何在MySQL中实现这样的功能呢?答案就是——事务。下面我们就来介绍一下MySQL事务是什么?它......
  • 【谢华】超脑力高效学习法
    目录记忆法标签表1.字母锁链法2.锁链衍生法3.谐音联想法4.直观记忆法5.位置法扩增单词计划注意事项记忆法【谢华】超脑力高效学习法标签表1.字母锁链法利用字母标签加上锁链法串成一张图片来记忆。例如:熊bear想像一个熊,熊的大腿上叮着一只大蜜蜂(e),蜜蜂被老鹰(e)咬着,老鹰的爪子抓......
  • Nginx loki监控日志的学习
    Nginxloki监控日志的学习背景学习https://mp.weixin.qq.com/s/Qt1r7vzWvCcJpNDilWHuxQ增加了一些自己的理解第一部分nginx日志的完善在logformat的后面增加一个:log_formatjson_analyticsescape=json'{''"msec":"$msec",'#request......
  • Windows平台的prometheus和Grafana的学习与使用
    Windows平台的prometheus和Grafana的学习与使用背景最近没有了linux机器突然想捯饬一下Windows平台的监控与使用所以总结一一下.第一步下载https://prometheus.io/download/https://grafana.com/grafana/download注意需要下载windows平台的安装介质建议是选择zip包.zip包......
  • 可视化学习:利用向量判断多边形边界
    引言继续巩固我的可视化学习,向量运算是计算机图形学的基础,本例依旧是向量的一种应用,利用向量判断多边形边界,但是多边形的边界判断稍微有点复杂,所以除了应用向量之外,还需要借助三角剖分的相关工具。这个例子中可视化的展示采用Canvas2D来实现。问题假设Canvas画布上存在一个如下......
  • drop_caches 的简单学习
    drop_caches的简单学习背景最近一段时间一直在学习内存相关的知识Linux系统里面的内存管理还是非常复杂的.我这边理解Linux从宏观层次的段页式内存管理到细节的buddy和slab以及大页内存分配以及pagecache和buffers的缓存等设置.最近因为遇到了CentOS6和CentOS7free......
  • Python学习之十二_tkinter的学习与使用
    Python学习之十二_tkinter的学习与使用摘要本来想说会用QT5进行界面编程但是发现比较繁琐还是先学习使用tkinter的方式进行界面化的编写和学习了基础知识tkinter是一个源码开放的图形用户接口开发工具,具备跨平台的特性Python默认的GUI开发模块是tkinter(在Python3以前的版本中......
  • 12.kafka单集群安装部署
    一.安装jdk,kafka需要至少jdk8+1.安装jdkyuminstalljava-11-openjdk.x86_64-y 2.查看安装是否正常[root@localhostbin]#java--versionopenjdk11.0.212023-10-17LTSOpenJDKRuntimeEnvironment(Red_Hat-11.0.21.0.9-1.el7_9)(build11.0.21+9-LTS)OpenJDK......