当前位置: 首页 > 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);
?>

在这里插入图片描述

http://www.lryc.cn/news/207664.html

相关文章:

  • 【广州华锐视点】VR飞行员驾驶模拟实训系统
  • 太烂的牌也要打完只为自己也不是为了其他什么原因。
  • SDL窗口创建以及简单显示(1)
  • 【Html】交通灯问题
  • 用IntelliJ远程打断点调试
  • Spring-Bean的生命周期概述
  • SENet 学习
  • 目前和未来的缓存构建
  • aws亚马逊云免费账号代充值!!!什么是 AWS Lambda?
  • 《从零开始大模型开发与微调 :基于PyTorch与ChatGLM》简介
  • 【LeetCode】102. 二叉树的层序遍历
  • golang连接池检查连接失败时如何重试
  • 从JavaScript到Rust的三年时间小结
  • 【Python机器学习】零基础掌握VotingRegressor集成学习
  • 云计算模式的区域LIS系统源码,基于ASP.NET+JQuery、EasyUI+MVC技术架构开发
  • 面向对象设计原则之接口隔离原则
  • haproxy 负载均衡
  • 在el-dialog中使用tinymce 点击工具栏下拉框被遮挡
  • CloudQuery + StarRocks:打造高效、安全的数据库管控新模式
  • 各类统计模型R语言的详细使用教程-R语言的线性回归使用教程
  • 点云从入门到精通技术详解100篇-基于尺度统一的三维激光点云与高清影像配准
  • <蓝桥杯软件赛>零基础备赛20周--第2周
  • CMake多文件构建初步
  • 游戏研发的解决方案有哪些?
  • Bayes决策:身高与体重特征进行性别分类
  • 【考研数学】数学“背诵”手册 | 需要记忆且容易遗忘的知识点
  • HJ3 明明的随机数
  • 如何恢复u盘删除文件?2023最新分享四种方法恢复文件
  • 8.稳定性专题
  • 基于51单片机的四种波形信号发生器仿真设计(仿真+程序源码+设计说明书+讲解视频)