PHP与mysql数据库交互

news2024/11/19 7:47:55

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);
?>

在这里插入图片描述

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

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

相关文章

git合并错分支还原技巧

如果合并错了&#xff0c;但是还没有push&#xff0c;还原的简单粗暴的方式就是把合并后的分支删了。 本文主要讲的是git合并错分支并且已经push了的还原方式 比如&#xff1a;开发分支future_1&#xff0c;合并到项目组共同使用的分支develop上了&#xff0c;并且已经push了&…

Java实现SQL分页

在日常开发需要对数据进行分页&#xff0c;配置如下 <!-- baomidou --><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version></dependency> 在控…

8.稳定性专题

1. anr https://code84.com/303466.html 一句话&#xff0c;规定的时间没有干完要干的事&#xff0c;就会发生anrsystem_anr场景 input 5sservice 前台20s 后台60scontentprivider超市 比较少见 原因 主线程耗时 复杂layout iobinder对端block子线程同步锁blockbinder被占满导…

ROS自学笔记十五:URDF工具

要使用工具之前&#xff0c;首先需要安装&#xff0c;安装命令: sudo apt install liburdfdom-tools 1.check_urdf 语法检查 在ROS中&#xff0c;你可以使用.check_urdf命令行工具来对URDF&#xff08;Unified Robot Description Format&#xff09;文件进行语法检查和验证。…

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

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

DAY35 435. 无重叠区间 + 763.划分字母区间 + 56. 合并区间

435. 无重叠区间 题目要求&#xff1a;给定一个区间的集合&#xff0c;找到需要移除区间的最小数量&#xff0c;使剩余区间互不重叠。 注意: 可以认为区间的终点总是大于它的起点。 区间 [1,2] 和 [2,3] 的边界相互“接触”&#xff0c;但没有相互重叠。 示例 1: 输入: [ […

Nginx 的配置文件(负载均衡,反向代理)

Nginx可以配置代理多台服务器&#xff0c;当一台服务器宕机之后&#xff0c;仍能保持系统可用。 cmd查找端口是否使用&#xff1a;netstat -ano Nginx出现403 forbidden #解决办法&#xff1a;修改web目录的读写权限&#xff0c;或者是把nginx的启动用户改成目录的所属用户&…

题目 1059: 二级C语言-等差数列(python详解)——练气四层后期

✨博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;算法修炼之练气篇&#xff08;C\C版&#xff09; &#x1f353;专栏&#xff1a;算法修炼之筑基篇&#xff08;C\C版&#xff09; &#x1f352;专栏&#xff1a;算法修炼之练气篇&#xff08;Python版&#xff09; ✨…

京东平台数据分析:2023年9月京东空气净化器行业品牌销售排行榜

鲸参谋监测的京东平台9月份空气净化器市场销售数据已出炉&#xff01; 9月份&#xff0c;空气净化器的销售同比上年增长。根据鲸参谋平台的数据显示&#xff0c;今年9月&#xff0c;京东平台空气净化器的销量将近15万&#xff0c;同比增长约1%&#xff1b;销售额将近2亿元&…

身份证读卡器Qt语言实现Linux系统开发集成

Linux系统用Qt开发身份证读卡器示例&#xff0c;后面是Cdemo源码&#xff1a; 编译平台&#xff1a; 麒麟V10&#xff08;SP1&#xff09;&#xff0c;amd构架&#xff0c;Intel i7-10700 CPU Qt版本&#xff1a; Qt Creator 4.11.0&#xff0c;Based on Qt 5.12.12&#xff0…

CTF-Crypto 第二天-DES加密算法原理学习

文章目录 DES算法简介DES算法流程迭代加密费斯妥函数&#xff08;F函数&#xff09;密钥调度 混淆与扩散 DES算法简介 数据加密标准&#xff08;Data Encryption Standard&#xff0c;缩写DES&#xff09;是一种对称加密算法&#xff0c;也是一种分组加密算法。 对称加密指的…

RabbitMQ的交换机(原理及代码实现)

1.交换机类型 Fanout Exchange&#xff08;扇形&#xff09;Direct Exchange&#xff08;直连&#xff09;opic Exchange&#xff08;主题&#xff09;Headers Exchange&#xff08;头部&#xff09; 2.Fanout Exchange 2.1 简介 Fanout 扇形的&#xff0c;散开的&#xff1…

linux配置jdk环境变量的三种方法

在Linux系统中&#xff0c;配置JDK环境变量是非常重要的&#xff0c;它可以让你在终端中直接使用Java命令&#xff0c;同时也能够确保你的Java应用程序能够正常运行。下面将介绍三种常用的方法来配置JDK环境变量。 方法一&#xff1a;使用/etc/profile文件 1. 打开终端&#…

TWAS模型数据*.wgt.RDat查看及导入R

TWAS模型数据*.wgt.RDat查看及导入R 1 数据导入R load(“./SLC7A8.wgt.RDat”) as.data.frame(snps) -> snp snp %>% head()V1 V2 V3 V4 V5 V6 1 12 rs10747759 0 55683634 C T 2 12 rs2293409 0 55684180 A C 3 12 rs1048103 0 55684405 C …

.DS_Store泄露

.DS_Store泄露 1.简介2.发掘和利用方式 1.简介 .DS_Store文件是苹果操作系统&#xff08;如Mac OS&#xff09;中的隐藏文件&#xff0c;它保存了文件夹的自定义属性、图标布局和其他元数据信息。通常&#xff0c;这些文件用于记录文件夹中的视图选项和布局设置。 就文件本身…

中国铁路线路数据,分为高速铁路和普通铁路,有shp格式和xlsx格式,免费下载

数据地址&#xff1a; 中国铁路线路数据https://www.xcitybox.com/datamarketview/#/Productpage?id274 基本信息. 数据名称: 中国铁路线路数据 数据格式: ShpXlsx 数据时间: 2018年 数据几何类型: 线 数据坐标系: WGS84坐标系 数据来源&#xff1a;网络公开数据 数据…

uni-app打包apk实现自动更新

一、直接复制粘贴就可用(豪横) app.vue文件里写 //app.vue里写 <script>export default {onShow: function() {console.log(App Show)},onHide: function() {console.log(App Hide)},onLaunch: function() {let appVersion uni.getSystemInfo({success: function(e) {ap…

阿里云RocketMQ版查看消息队列的客户端

通过group查看连接mq的主机 消息队列 RocketMQ 版/实例列表/Group 管理/Group 详情/运行信息

chatgpt论文润色 降重

用chatgpt最好要给他范例。chatgpt降重原理&#xff1a; https://www.bilibili.com/video/BV1Eh411M7Ug/?spm_id_from333.337.search-card.all.click&vd_sourceebc47f36e62b223817b8e0edff181613 一. 中文论文翻译成英文 1.1 直接翻译 你是一位广义零样本学习的专家&a…