【深度学习】PHP操作mysql数据库总结
一.PHP数据库的扩展分类
1.MySQL 扩展是针对 MySQL 4.1.3 或更早版本设计的,是 PHP 与 MySQL数据库交互的早期扩展。由于其不支持 MySQL 数据库服务器的新特性,且安全性差,在项目开发中不建议使用,可用 MySQLi 扩展代替。
2.MySQLi 扩展是 MySQL 扩展的增强版,它不仅包含了所有 MySQL 扩展的功能函数,还可以使用 MySQL 新版本中的高级特性。例如,多语句执行和事务的支持,预处理方式完全解决了 SQL 注入问题等。MySQLi 扩展只支持MySQL 数据库,如果不考虑其他数据库,该扩展是一个非常好的选择。
3.PDO 是 PHP Data Objects(数据对象)的简称,它提供了一个统一的 API接口,只要修改其中的 DSN (数据源),就可以实现PHP应用与不同类型数据库服务器之间的交互。
二.连接数据库。
1.通过MySQL类库操作数据库的步骤
建立到MySQL的连接-打开指定的数据库-设置默认客户端的字符集-执行SQL查询-释放字符集-关闭连接
三.执行SQL语句。
在完成数据库的连接后,就可以通过 SQL 语句操作数据库了。在 MySQLi扩展中,通常使用 mysqli_query() 函数发送 SQL 语句,获取执行结果。函数的声明方式如下:
$conn表示通过 mysqli_connect() 函数获取的数据库连接, $sql 表示 SQL 语句。当函数执行 SELECT、SHOW、DESCRIBE 或EXPLAIN 查询时,返回值是查询结果集,而对于其他查询,成功返回 true,失败返回 false。
使用 mysql_query()函数执行 SQL语句,对数据的操作方式主要包括 5种方式
查询数据:使用select 语句实现数据的查询功能。
显示数据:使用select 语句显示数据的查询结果。
插入数据:使用insert into 语句向数据库中插入数据。
更新数据:使用update 语句更新数据库中的记录。
删除数据:使用 delete语句删除数据库中的记录!
四.处理结果集
1.当通过 mysqli_query() 函数执行 SQL 语句后,返回的结果集并不能直接使用,需要使用函数从结果集中获取信息,保存为数组。MySQLi 扩展中常用的处理结果集的函数如表所示。

2.在表列举函数中,mysqli_fetch_all() 和 mysqli_fetch_array() 的返回值支持关联数组和索引数组两种形式,函数第 1 个参数表示结果集,第 2 个参数是可选参数,表示返回的数组形式,其值有 MYSQLI_ASSOC、MYSQLI_NUM、MYSQLI_BOTH 三种常量,分别表示关联数组、索引数组,或两者皆有,默认值为 MYSQLI_BOTH。
3.当需要一次查询出所有的记录时,可以通过 mysqli_fetch_all() 函数来实现
$data = mysqli_fetch_all($result, MYSQLI_ASSOC);
再通过var_dump($data);打印出来。
五.预处理语句。
1.什么是预处理。
MySQLi 扩展中有一种预处理语句的机制,其原理是预先编译 SQL 语句的模板,当执行时只传输有变化的数据。下图演示了预处理语句和传统方式的区别。

图中可以看出,当 PHP 需要执行 SQL 时,传统方式是将发送的数据和 SQL 写在一起,这种方式每条 SQL 都需要经过分析、编译和优化的周期;而预处理语句只需要编译一次用户提交的 SQL 模板,在操作时,发送相关数据即可完成更新操作,这极大地提高了运行效率,而且无需考虑数据中包含特殊字符(如单引号)导致的语法问题。
2.预处理相关函数。
a. mysqi_prepare()函数用于预处理一个待执行的 SQL 语句,函数声明如下:mysqli_stmt mysqli_prepare ( mysqli $link , string $query )参数 $link 表示数据库连接,$query 表示 SQL 语句模板。当函数执行后,成功返回预处理对象,失败返回 false。
b. 在编写SQL语句模板时,其语法是将数据部分使用“?”占位符代替。示例代码如下:
PHP操作mysql数据库总结
一.开启Mysql数据库
1)php可以通过MySql函数库来操作数据库
开启mysql扩展
编辑Php配置文件php.ini
extension_dir="php/ext文件路径"
启动extension=mysqli选项 在php.ini文件内;二.PHP操作Mysql数据库的步骤:
1.连接mysql数据库服务器
2.判断是否连接正确
3.选择数据库
4.设置字符集编码
5.准备并执行SQL语句
6.处理结果集
7.释放结果集资源,关闭数据库三.具体操作mysql数据库
先要写头部header()汉字编码
如果数据库中有时间输出的话还要写时区类型
1.连接数据库
$conn=mysqli_connect(连接数据库的ip:3306,mysql数据库的账号,mysql数据库的密码)
2.判断是否连接成功
返回错误号
int mysql_errno([$link]); 中括号中的内容可以省略
如果为发生任何错误,此函数会返回0
返回错误信息
string mysqli_connect_error();
排查mysql数据库的错误信息可以用or die(...错误号.mysql_errno(),错误信息.mysqli_connect_error())来进行连接;
3.选择数据库
bool mysql_select_db('数据库的名字',[$link])
4.设置客户端汉字编码
bool mysql_set_charset('utf8',[$link])
5.执行SQL语句
mixed mysql_query(select(查看表内容)\show(tables查看数据库\
create tabel查看建表)\desc(查看表结构)\insert(添加记录)\
update(更新)\dalete(删除))四.处理资源结果集
1.获取结果集包含的记录数目
int mysql_num_rows($表里记录信息变量)
2.获取表里的内容以索引数组返回值
array mysql_fetch_row($表里的记录信息变量)
3.获取表里的内容以关联数组返回值
array mysql_fetch_assoc($表里的记录信息变量)
4.获取结果集中字段的数目
int mysql_num_fieds($result)
5.返回结果集中某行记录的某个字段值(默认为首字段)
mysql_result($result, int $row)
int值是从0开始的0 拿某个字段的值
$row写字段名五.处理非查询语句
1.获取插入时受影响行的行数
int mysql_affected_rows()
2.获取插入时最后插入记录的主键id
int mysql_insert_id()六.释放结果集资源
1.如果是执行的事查询SQL语句查询后必须要释放资源
bool mysql_free_result();
2.使用完数据库后要关闭数据库
bool mysql_close();
<?php
$username=$_POST['usernm']; $password=$_POST['passwd']; #接收来自login.php传递的passwd值赋值到$password上
$conn=mysqli_connect("localhost","root","root","login"); #建立与数据库的连接
if (!$conn)
{
die("连接错误:". mysqli_connect_error());
} #判断和数据库是否连接正确
$sql="select * from laptop where user='$username' and password='$password'";
$res=mysqli_query($conn,$sql); #连接,执行sql语句
if (mysqli_fetch_array($res)!=0) #将传参转化为数组,判断用户输入的值是否和数据库指定的字段中的值是否相同,相同即不为0,不相同反之。
{
echo "OK"; #可以改成页面链接 如:"header("location:query.html");"
}
else
{
echo "NO";
}?>
PHP操作数据库
(1) 连接数据库
<?php$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = 'dbali';$conn = new mysqli($servername, $username, $password, $dbname); // 创建连接// 检测连接
if ($conn->connect_error)
{die("连接失败: " . $conn->connect_error);
} $conn->set_charset('utf8'); //查询前设置编码,防止输出乱码echo "连接成功";
?>
PHP连接数据库MYSQL的八个步骤
1.链接MySQL数据库 mysqli_connect();
2.判断链接是否成功
3.设置字符集 mysqli_set_charset
4.选择数据库 mysqli_select_db
5.准备SQL语句 select update insert delete
6.执行SQL语句
在选择数据库中使用 mysql_query()函数执行 SQL语句,对数据的操作方式主要包括 5种方式
查询数据:使用select 语句实现数据的查询功能。
显示数据:使用select 语句显示数据的查询结果。
插入数据:使用insert into 语句向数据库中插入数据。
更新数据:使用update 语句更新数据库中的记录。
删除数据:使用 delete语句删除数据库中的记录!
7.处理结果集
8.关闭数据库释放资源
<?php$conn = mysqli_connect('localhost','root','root');if (!$conn) {die("连接失败: " . $conn->connect_error); //exit('数据库连接失败');}mysqli_set_charset($conn,'utf8');mysqli_select_db($conn,'count');$sql = "select * from count";$obj = mysqli_query($conn,$sql);$res = mysqli_fetch_array($obj);var_dump($res);mysqli_close($conn);?>
(2) 书写语句,执行语句
① 执行语句的代码:$res = $conn->query()
② 若执行的是增删改语句,$res的值为布尔值(insert, update, delete)
③ 若执行的是查询语句,得到查询结果集(对象)(select)
④ 若是查询语句,记得释放查询结果集,避免资源浪费
⑤ 关闭数据库
相关文章:
【深度学习】PHP操作mysql数据库总结
一.PHP数据库的扩展分类 1.MySQL 扩展是针对 MySQL 4.1.3 或更早版本设计的,是 PHP 与 MySQL数据库交互的早期扩展。由于其不支持 MySQL 数据库服务器的新特性,且安全性差,在项目开发中不建议使用,可用 MySQLi 扩展代替。 2.MySQ…...
【送书活动】探究AIGC、AGI、GPT和人工智能大模型
文章目录 前言01 《ChatGPT 驱动软件开发》推荐语 02 《ChatGPT原理与实战》推荐语 03 《神经网络与深度学习》推荐语 04 《AIGC重塑教育》推荐语 05 《通用人工智能》推荐语 后记赠书活动 前言 人工智能技术在过去几年中发展迅猛,得益于大数据、云计算、深度学习等…...
Apple Find My「查找」认证芯片找哪家,认准伦茨科技ST17H6x芯片
深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…...
java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value
问题描述 使用Springcloudalibaba的nacos作为配置中心,服务启动时报错: java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value java.lang.IllegalArgumentException: Param ‘serviceName’ is illegal, serviceName is …...
自动机器学习是什么?概念及应用
自动机器学习 (Auto Machine Learning) 的应用和方法 随着众多企业在大量场景中开始采用机器学习,前后期处理和优化的数据量及规模指数级增长。企业很难雇用充足的人手来完成与高级机器学习模型相关的所有工作,因此机器学习自动化工具是未来人工智能 (A…...
el-date-picker限制选择7天内禁止内框选择
需求:elementPlus时间段选择框需要满足:①最多选7天时间。②不能手动输入。 <el-date-picker v-model"timeArrange" focus"timeEditable" :editable"false" type"datetimerange" range-separator"至&qu…...
Navicat 技术指引 | 适用于 GaussDB 分布式的调试器
Navicat Premium(16.3.3 Windows 版或以上)正式支持 GaussDB 分布式数据库。GaussDB 分布式模式更适合对系统可用性和数据处理能力要求较高的场景。Navicat 工具不仅提供可视化数据查看和编辑功能,还提供强大的高阶功能(如模型、结…...
人工智能导论习题集(3)
第五章:不确定性推理 题1题2题3题4题5题6题7题8 题1 题2 题3 题4 题5 题6 题7 题8...
2023一起益企广东省中小企业数字化赋能活动(深圳站)成功举办
12月12日,由广东工业和信息化厅指导,广东省中小企业服务中心、深圳市中小企业服务局主办,深圳联通承办的2023年“一起益企”广东省中小企业数字化赋能专项对接志愿服务活动(深圳站)在深圳成功举办。 本次活动涵盖中小企…...
MySQL之创建表
创建emp表 #创建表的练习 -- 字段 属性 -- Id 整形 -- name 字符型 -- sex 字符型 -- birthday 日期型 -- entry_date 日期型 -- job 字符型 -- Salary 小数型 -- resume 文本型 CREATE TABLE emp(id INT,name VARCHAR(32),sex CHAR(1),birthday DATE,entry_date DAT…...
选择大于努力-鸿蒙开发应用不适合当前企业的现状态(头部应用除外)推荐一套款平台框架可以写安卓iOS 鸿蒙为企业开源节流
1。从目前各种app平台以及个人原生安卓开发走来的经验看来,原生app开发存在一下问题也是国内现状的情况 1.开发成本高比如原生安卓你需要掌握一种语言Java或者kotlin ios开发需要oc 或者swift 2.app开发出来推广成本,一般企业吃不消 3.开发维护成本好…...
2023.12.12 关于 Java 反射详解
目录 基本概念 定义 用途 反射相关的类 反射基本原理 Class 类中的相关方法 常用获得类相关的方法 常用获得类中属性相关的方法 常用获得类中构造器相关的方法 常用获得类中方法相关的方法 实例理解 反射优缺点 基本概念 定义 Java 的反射(reflection&a…...
【Qt QML入门】Image
Image类型显示一个图像。 使用source属性将图像的源指定为URL。图像可以以Qt支持的任何标准图像格式提供,包括位图格式,如PNG和JPEG,以及矢量图形格式,如SVG。 如果没有指定宽度和高度属性,图像将自动使用加载图像的大…...
Spark编程入门
1.8 Spark编程入门 1.8.1 通过IDEA创建Spark工程 ps:工程创建之前步骤省略,在scala中已经讲解,直接默认是创建好工程的 导入Pom文件依赖 <!-- 声明公有的属性 --><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler…...
JVM 内存分析工具 Memory Analyzer Tool(MAT)的深度讲解
目录 一. 前言 二. MAT 使用场景及主要解决问题 三. MAT 基础概念 3.1. Heap Dump 3.2. Shallow Heap 3.3. Retained Set 3.4. Retained Heap 3.5. Dominator Tree 3.6. OQL 3.7. references 四. MAT 功能概述 4.1. 内存分布 4.2. 对象间依赖 4.3. 对象状态 4.4…...
浅谈 USB Bulk 深入浅出 (3) - USB Bulk 装置传输的注意事项
来源:大大通 作者:冷氣團 1 USB Bulk 是什么 USB 是即插即用使用差动信号的装置界面,是以 端点 ( Endpoint ),做为传输装置的输出入端,透过不同的端点 ( Endpoint ) 和模式,来进行与装置的沟通ÿ…...
c语言结构体调用格式与对齐
1.声明形式: struct 结构体名字 { 结构体成员 }结构体变量名; 2.赋值方法 3.结构体对齐: 1.起始偏移量:默认结构体第一个元素对齐0起始偏移量,第一个元素占一个字节,此时偏移量为1. 2.标准数ÿ…...
服务器常用命令介绍和负载监控的工具插件推荐
先赞后看,养成习惯!!!❤️ ❤️ ❤️ 码字不易,如果喜欢可以关注我哦! 如果本篇文章对你有所启发,欢迎访问我的个人博客 命令 服务器相关 5个常用命令 top Top命令不仅显示了当前内核服务的…...
linux 防火墙systemctl (个人笔记)
查看 systemctl status firewalld 开启 systemctl start firewalld 关闭 systemctl stop firewalld.service 查看所有 firewall-cmd --zonepublic --list-ports 开放端口:// --permanent 永久生效,没有此参数重启后失效 firewall-cmd --zonepublic --add-port9527/…...
处理器中store指令的处理
对于向存储器中保存数据的store指令来说,它在顺利离开流水线之前是不允许改变处理器状态的,只有等到它退休(retire)的时候,才允许将它携带的数据写到D-Cache中在此之前,store指令即使计算完毕,也会将结果暂存在一个缓存中…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
【Java学习笔记】BigInteger 和 BigDecimal 类
BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点:传参类型必须是类对象 一、BigInteger 1. 作用:适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
