当前位置: 首页 > news >正文

PHP与mysql数据库交互

PHP与mysql数据库交互

文章目录

  • PHP与mysql数据库交互
      • 方法速查
      • 建立与Mysql链接
      • 捕获连接错误
      • SQL语句的执行
      • SQL 错误
      • SQL语句执行
      • 结果集对象
        • 方法速查
    • 案例

方法速查

函数名								 		作用
mysqli_connect()				与MySQL 数据库建立连接。
mysqli_close()					关闭与MYSQL 数据库建立的连接。
mysqli_connect_errno()			与MySQL 数据库建立连接时,发生错误时的错误编号。
mysqli_connect_error()			与MySQL 数据库建立连接时,发生错误时的错误信息。
mysqli_query()					执行SQL 语句
mysqli_errno()					执行SQL 语句时,发生错误的编号。
mysqli_error()					执行SQL 语句时,发生错误的信息。
mysqli_fetch_assoc()			从结果集对象中取数据,按条取数据。

建立与Mysql链接

想要建立连接想要用到一个PHP函数mysqli_connect( d b h o s t , db_host, dbhost,db_user, d b p a s s , db_pass, dbpass,db_name);

里面有四个参数

$db_host
主机的名称
$db_user
连接数据库的用户名
$db_pass
连接数据库用户名的密码
$db_name
连接的库名
$db_host='localhost';
$db_user='root';
$db_pass='root';
$db_name='xl_bbs';
$link= @mysqli_connect($db_host, $db_user, $db_pass, $db_name);

$link变量就相当于获取到了一个通行证

捕获连接错误

如果说建立连接失败就会停止执行所有语句,并输出错误和错误编号

if(!$link){exit("[".mysqli_connect_errno()."] ".mysqli_connect_error());
}

SQL语句的执行

要执行sql语句时需要用到mysqli_query()方法

$sql = "select * from users"
$results = mysqli_($link,$sql);

如果执行正常就会返回object类型数据否则,就是bool(false)。

SQL 错误

如果在执行SQL 语句的时候发生错误,mysqli_query 将返回false。可以使用以下函数捕获错误原因:

if(!$results){exit("[".mysqli_errno($link)."] ".mysqli_error($link));
}

SQL语句执行

需要用到mysqli_fetch_assoc()方法

导出第一条语句

var_dump($result);

所有语句全部导出

while($result = mysqli_fetch_assoc($results)){var_dump($result);
}

如果说导入第二条语句的话需要执行两遍var_dump($result);但是第一条结果会被覆盖只显示第二条语句

结果集对象

方法速查
函数														说明
mysqli_fetch_row()							以索引数组的方式获取一条记录的数据
mysqli_fetch_assoc()						以关联数组的方式获取一条记录的数据
mysqli_fetch_array()						以索引数组或关联数组的方式获取一条记录的数据
mysqli_fetch_all()							以索引数组或关联数组的方式获取全部记录的数据
mysqli_num_rows()							获取结果集对象中数据条数
mysqli_free_result()						释放与一个结果集合相关的内存

案例

利用之前做好的数据库来实现网页显示成果为下图
在这里插入图片描述

新建一个数据库把之前数据库实验的备份文件进行导入依次输入以下命令

create database bbs;
use bbs;
source C:/bbs.sql;

在这里插入图片描述
准备好数据库后用php代码创建连接

<?php$db_host="127.0.0.1";$db_user= "root";$db_pass= "rooe";$db_name= "bbs";$link=@mysqli_connect("$db_host","$db_user","$db_pass","$db_name");
?>

做一个 捕获错误连接不上数据库时进行简单报错

 if(!$link){exit("数据库连接错误"."【".mysqli_connect_errno()."】".mysqli_connect_error());
}

写入查询sql语句并用mysqli_query()方法执行sql语句

$sql="select * from message";$results=mysqli_query($link,$sql);

想要去每条数据使用while循环用mysqlo_fetch_assoc()方法进行取值进行输出条件为mysqlo_fetch_assoc()把全部值取完
再加入表格元素那么就成功了

echo "<table border='2'> <tr><td>ID</td><td>UID</td><td>TITLE</td><td>CONTENT</td></tr> ";while($result=mysqli_fetch_assoc($results)){   echo "<tr>";foreach($result as $key=>$value){ echo "<td>";echo $value;echo "</td>";}echo "</tr>";}

最后再关闭链接

mysqli_close($link);

在这里插入图片描述
优化后可以通过id查找数据库内容的源码如下

<pre><meta charset="utf-8">
<?php$db_host="127.0.0.1";$db_user= "root";$db_pass= "root";$db_name= "bbs";$link=@mysqli_connect("$db_host","$db_user","$db_pass","$db_name");if(!$link){exit("数据库连接错误"."【".mysqli_connect_errno()."】".mysqli_connect_error());}
$id=isset($_REQUEST["id"])?$_REQUEST['id']:1;$sql="select m.id, u.username, m.title,m.content from message m,user u where m.uid= u.id and m.id={$id};";$results=mysqli_query($link,$sql);if(!$results){exit("数据库错误".mysql_errno().mysql_error());}echo "<table border='2'> <tr><td>ID</td><td>UID</td><td>TITLE</td><td>CONTENT</td></tr> ";while($result=mysqli_fetch_assoc($results)){   echo "<tr>";foreach($result as $key=>$value){ echo "<td>";echo $value;echo "</td>";}echo "</tr>";}
mysqli_close($link);
?>

在这里插入图片描述

相关文章:

PHP与mysql数据库交互

PHP与mysql数据库交互 文章目录 PHP与mysql数据库交互方法速查建立与Mysql链接捕获连接错误SQL语句的执行SQL 错误SQL语句执行结果集对象方法速查 案例 方法速查 函数名 作用 mysqli_connect() 与MySQL 数据库建立连接。 mysqli_close() 关闭与MYSQL 数据库建…...

【广州华锐视点】VR飞行员驾驶模拟实训系统

VR飞行员驾驶模拟实训系统是一种基于虚拟现实技术的航空装备仿真测试技术&#xff0c;可以用于飞行员、乘务员和机务人员的训练。该系统可以模拟真实的飞行环境&#xff0c;包括天气、地形、飞机性能等&#xff0c;使被试者能够在虚拟环境中进行飞行操作&#xff0c;从而提高其…...

太烂的牌也要打完只为自己也不是为了其他什么原因。

day17_io02 1.上课代码敲一遍 2.读取一个文件&#xff0c;这个文件中有随机的一些数字字符&#xff0c;统计这些数字有几个偶数&#xff0c;几个奇数&#xff0c;并且追加写入到该文件末尾。 例如&#xff1a; a.txt文件&#xff1a; 3241256364789629090126581212515 奇数&…...

SDL窗口创建以及简单显示(1)

项目创建步骤 1. 使用Qt Creator创建一个C项目 2. 将SDL库文件放到源文件目录下 在项目pro文件中添加库文件 win32{INCLUDEPATH $$PWD/SDL2-2.0.10/includeLIBS $$PWD/SDL2-2.0.10/lib/x86/SDL2.lib } 使用SDL创建一个窗口 #include <stdio.h>#include <SDL.h>…...

【Html】交通灯问题

效果 实现方式 计时器&#xff1a;setTimeout或setInterval来计时。setInterval和 setTimeout 在某些情况下可能会出现计时不准确的情况。这通常是由于JavaScript的事件循环机制和其他代码执行所需的时间造成的。 问询&#xff1a;通过getCurrentLight将每个状态的持续时间设置…...

用IntelliJ远程打断点调试

前提当然是本地和远程部署的代码一样。 记录下步骤&#xff1a; 1&#xff0c;用token登录kuboard&#xff0c;找到目标容器的IP&#xff1a; 2, 用上一步找到的IP等信息创建Remote JVM Debug: 3&#xff0c;打断点&#xff0c;wkb说要把断点此属性改为线程。我试了下似乎…...

Spring-Bean的生命周期概述

Bean的生命周期概述 入门使用的Spring代码&#xff1a; ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext("spring.xml"); UserService userService (UserService) context.getBean("userService"); userService.test(); …...

SENet 学习

ILSVRC 是一个比赛&#xff0c;全称是ImageNet Large-Scale Visual Recognition Challenge&#xff0c;平常说的ImageNet比赛指的是这个比赛。 使用的数据集是ImageNet数据集的一个子集&#xff0c;一般说的ImageNet&#xff08;数据集&#xff09;实际上指的是ImageNet的这个子…...

目前和未来的缓存构建

说起来可能有点反直觉&#xff0c;有时候不运行反而可以帮助我们加快速度&#xff0c;这正是网络浏览器运行的指导原则。不必在页面上加载所有内容&#xff0c;缓存的元素已经存在&#xff0c;不需要每次访问网站或网页时都重新加载。页面加载速度越快&#xff0c;浏览器的工作…...

aws亚马逊云免费账号代充值!!!什么是 AWS Lambda?

AWS Lambda 是一项计算服务&#xff0c;可使您无需预配置或管理服务器即可运行代码。 Lambda 在可用性高的计算基础设施上运行您的代码&#xff0c;执行计算资源的所有管理工作&#xff0c;其中包括服务器和操作系统维护、容量调配和弹性伸缩和记录。使用 Lambda&#xff0c;您…...

《从零开始大模型开发与微调 :基于PyTorch与ChatGLM》简介

内 容 简 介 大模型是深度学习自然语言处理皇冠上的一颗明珠&#xff0c;也是当前AI和NLP研究与产业中最重要的方向之一。本书使用PyTorch 2.0作为学习大模型的基本框架&#xff0c;以ChatGLM为例详细讲解大模型的基本理论、算法、程序实现、应用实战以及微调技术&#xff0c;…...

【LeetCode】102. 二叉树的层序遍历

题目链接 文章目录 Python3方法一&#xff1a; 广度优先搜索 (BFS) ⟮ O ( n ) ⟯ \lgroup O(n) \rgroup ⟮O(n)⟯方法二&#xff1a; 深度优先搜索 (DFS) ⟮ O ( n ) ⟯ \lgroup O(n) \rgroup ⟮O(n)⟯ C方法一&#xff1a; 广度优先搜索 (BFS) ⟮ O ( n ) ⟯ \lgroup O(n…...

golang连接池检查连接失败时如何重试

在Go中&#xff0c;可以通过使用database/sql包的DB类型的Ping方法来检查数据库连接的可用性。如果连接检查失败&#xff0c;可以选择进行重试。以下是一个简单的示例代码&#xff0c;演示了如何在连接检查失败时进行重试&#xff1a; import ("database/sql""…...

从JavaScript到Rust的三年时间小结

Rust 是一种注重安全性、速度和并发性的系统编程语言。它能编译成高效的本地代码&#xff0c;无需垃圾回收即可访问内存等底层资源&#xff0c;同时还能防止分隔故障。 作者讨论了他们几年来用 Rust 构建大型应用程序和库的经验。他们发现 Rust 的借用检查器和类型系统有助于减…...

【Python机器学习】零基础掌握VotingRegressor集成学习

如何更准确地预测房价? 想象一下,你是一名房地产分析师,你的任务是预测一个小区的未来房价。这看似简单,但实际上,房价受到多种因素的影响,如地理位置、房屋面积、周围设施等。你可能会使用线性回归模型来进行预测,但是你会发现,尽管模型的准确性还可以,但还是存在一…...

云计算模式的区域LIS系统源码,基于ASP.NET+JQuery、EasyUI+MVC技术架构开发

云计算模式的区域LIS系统源码 云LIS系统源码&#xff0c;自主版权 LIS系统是专为医院检验科的仪器设备能与计算机连接。可通过LIS系统向仪器发送指令&#xff0c;让仪器自动操作和接收仪器数据。并快速的将检验仪器中的数据导入到医生工作站中进行管理&#xff0c;且可将检验结…...

面向对象设计原则之接口隔离原则

目录 定义接口隔离原则与单一职责原则示例 定义 接口隔离原则&#xff0c;全称为 Interface Segregation Principle&#xff0c;缩写ISP。 原始定义&#xff1a;Clients should not be forced to depend upon interfaces that they don’t use。 翻译&#xff1a; 不应该强行…...

haproxy 负载均衡

haproxy负载均衡 haproxy&#xff1a;基于C语言开发的开源软件 支持高性能的tcp和http负载均衡器&#xff0c;工作中用的版本1.5.9 haproxy功能&#xff1a;主要用于高并发的web站点&#xff0c;工作原理和nginx、lvs都一样 haproxy缺点: 单节点部署&#xff0c;单实例运行。代…...

在el-dialog中使用tinymce 点击工具栏下拉框被遮挡

在el-dialog中使用tinymce控件时&#xff0c;会出现点击工具栏下拉框出现在弹窗下一层&#xff0c;审查元素之后发现是tinymce的下拉框z-index优先级低于el-dialog的z-index导致的&#xff0c;所以需要增加tinymce的下拉框的z-index值。 通过审查元素得到&#xff0c;需要修改t…...

CloudQuery + StarRocks:打造高效、安全的数据库管控新模式

随着技术的迅速发展&#xff0c;各种多元化的数据库产品应运而生&#xff0c;它们不仅类型众多&#xff0c;而且形式各异&#xff0c;国产化数据库千余套&#xff0c;开源数据库百余套 OceanBase 、PolarDB 、StarRocks…还有一些像 Oracle、MySQL 这些传统数据库。这些数据库产…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包

文章目录 现象&#xff1a;mysql已经安装&#xff0c;但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时&#xff0c;可能是因为以下几个原因&#xff1a;1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...

如何理解 IP 数据报中的 TTL?

目录 前言理解 前言 面试灵魂一问&#xff1a;说说对 IP 数据报中 TTL 的理解&#xff1f;我们都知道&#xff0c;IP 数据报由首部和数据两部分组成&#xff0c;首部又分为两部分&#xff1a;固定部分和可变部分&#xff0c;共占 20 字节&#xff0c;而即将讨论的 TTL 就位于首…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...