【深度学习】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)

   ④ 若是查询语句,记得释放查询结果集,避免资源浪费
   ⑤ 关闭数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/220035.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android BottomSheetBehavior(底部弹窗)

目录 一、BottomSheetBehavior 介绍 二、BottomSheetBehavior 基本使用 2.1 在 CoordinatorLayout 中添加底部工作表&#xff1a; 2.2 在代码中获取 BottomSheetBehavior 实例&#xff1a; 2.3 设置工作表的状态&#xff0c;如展开、折叠等 2.4 工作表的状态 三、Bottom…

嵌入式系统未来的发展趋势走向???

人工智能和机器学习应用 模型优化&#xff1a; 为了在资源有限的嵌入式系统上运行&#xff0c;将会看到更多的努力投入到精简、优化和量化模型&#xff0c;以适应边缘计算的环境。 边缘推理&#xff1a; 嵌入式设备将更多地执行本地推理&#xff0c;而不是将所有数据发送到云端…

Android原生 MQTT开发

一、引包 1.1.模块的build.gradle //mqtt框架implementation org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.1.0implementation org.eclipse.paho:org.eclipse.paho.android.service:1.1.1implementation org.bouncycastle:bcpkix-jdk15on:1.59 1.2 旧版AndroidStudio开…

【设计模式--行为型--命令模式】

设计模式--行为型--命令模式 命令模式定义结构案例优缺点使用场景 命令模式 定义 将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行存储&#xff0c;传递&#xff0c;调用…

Springboot整合Redis实现消息发布订阅

一、前言 有时候在实际项目中&#xff0c;某些业务场景下我们需要使用消息的发布订阅功能&#xff0c;以实现某些特殊的需求&#xff0c;那么我们实际上可以有多种选择&#xff0c;比如使用常见的消息中间件Rabbitmq&#xff0c;Kafka&#xff0c;Activemq等&#xff0c;但这几…

Nodejs 第二十四章(zlib)

在 Node.js 中&#xff0c;zlib 模块提供了对数据压缩和解压缩的功能&#xff0c;以便在应用程序中减少数据的传输大小和提高性能。该模块支持多种压缩算法&#xff0c;包括 Deflate、Gzip 和 Raw Deflate。 zlib 模块的主要作用如下&#xff1a; 数据压缩&#xff1a;使用 z…

07--面向对象OOP--02

学习面向对象内容的三条主线 Java类及类的成员&#xff1a;&#xff08;重点&#xff09;属性、方法、构造器&#xff1b;&#xff08;熟悉&#xff09;代码块、内部类面向对象的特征&#xff1a;封装、继承、多态、&#xff08;抽象&#xff09;其他关键字的使用&#xff1a;…

城轨线路列车时刻表与车站客流控制协同优化方法

文章信息 论文题目为《城轨线路列车时刻表与车站客流控制协同优化方法》&#xff0c;该文于2021年发表于《交通运输系统工程与信息》上。文章考虑换入客流影响下列车时刻表与客流控制的协同优化问题&#xff0c;以最小化乘车延误人数为目标&#xff0c;以列车时刻表、客流控制和…

前端成神之路-CSS基础选择器

前端成神之路-CSS基础选择器 目录 前端成神之路-CSS基础选择器 CSS选择器&#xff08;重点&#xff09; 1. CSS选择器作用&#xff08;重点&#xff09; 选择器的作用 2. CSS基础选择器 2.1 标签选择器 2.2 类选择器 2.3 类选择器特殊用法- 多类名 2.4 id选择器 id选…

java代码编写twitter授权登录

在上一篇内容已经介绍了怎么申请twitter开放的API接口。 下面介绍怎么通过twitter提供的API&#xff0c;进行授权登录功能。 开发者页面设置 首先在开发者页面开启“用户认证设置”&#xff0c;点击edit进行信息编辑。 我的授权登录是个网页&#xff0c;并且只需要进行简单的…

动物姿态估计:微调 YOLOv8 姿态模型

动物姿态估计是计算机视觉的一个研究领域&#xff0c;是人工智能的一个子领域&#xff0c;专注于自动检测和分析图像或视频片段中动物的姿势和位置。目标是确定一种或多种动物的身体部位&#xff08;例如头部、四肢和尾巴&#xff09;的空间排列。这项技术具有广泛的应用&#…

目标检测YOLO系列从入门到精通技术详解100篇-【目标检测】边缘检测(附MATLAB代码实现)

目录 前言 知识储备 数字图像处理(Digital Image Processing) 数字图像处理基础知识与算法

子组件调用父组件的方法

在React中使用函数组件&#xff08;也称为无状态组件&#xff09;和Hooks时&#xff0c;你可以通过以下方式让子组件调用父组件的方法&#xff1a; 1. 使用回调函数&#xff08;Callback Function&#xff09; 这是最常见的方法。当子组件需要调用父组件的方法时&#xff0c;…

uniapp 单选按钮 选中默认设备

需求1&#xff1a;选中默认设备&#xff0c;113 和114 和139都可以选中一个默认设备 选中多个默认设备方法&#xff1a; async toSwitch(typeItem, title) {const res await this.setDefaultDev(typeItem.ibdr_devsn, typeItem.ibdr_pid)if (!res) {this.common.toast(切换默…

关于在Java中打印三角形图形的汇总

前面写过一些关于打印三角形图形代码的文章&#xff0c;这里进行了汇总&#xff0c;话不多说&#xff0c;直接上代码&#xff1a; /*** 关于打印三角形的汇总*/ public class Work1 {public static void main(String[] args) {int num 5;/** 打印如下图形&#xff1a;* ** …

OPCServer KEPServer安装和使用

OPCServer KEPServer安装和使用 简介 KEPServer软件是免费的&#xff0c;驱动收费&#xff0c;每天2小时试用时间, 免费用来模拟仿真是很不错的选择 OPC DA 和OPC UA都支持 中文官网地址: https://www.kepware.com/zh-cn/ 中文官方文档&#xff08;经常有更新&#xff0c;其…

分库分表及ShardingShpere-proxy数据分片

为什么需要分库&#xff1f; 随着数据量的急速上升&#xff0c;单个数据库可能会QPS过高导致读写耗时过长而出现性能瓶颈&#xff0c;所以需要考虑拆分数据库&#xff0c;将数据库分布在不同实例上提升数据库可用性。主要的原因有如下&#xff1a; 磁盘存储。业务量剧增&…

Vite + React + tailwindcss + ts + 多Nodejs环境... 速搭

最近接触了前端代码&#xff0c;作为一个后端&#xff0c;能将其搭起来并用于生产&#xff0c;我感到很是欣慰。 本文纯安装速记与关键点记录&#xff0c;适合有一定经验且对前端React及生态有一些小了解&#xff0c;想要快速的将一个框架搭建起来的童鞋。可当成一个指引。 N…

华为OD机试 - 高效货运(Java JS Python C)

题目描述 老李是货运公司承运人,老李的货车额定载货重量为 wt。 现有两种货物: 货物 A 单件重量为 wa,单件运费利润为 pa货物 B 单件重量为 wb,单件运费利润为 pb老李每次发车时载货总重量刚好为货车额定的载货重量 wt,车上必须同时有货物 A 和货物 B ,货物A、B不可切割…

javaWebssh汽车销售管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh汽车销售管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用 B/S模式开发。开发环境为TOMCAT7.…