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

MySQL數據庫開發教學(四) 後端與數據庫的交互

書接上回:MySQL數據庫開發教學(三) 子查詢、基礎SQL注入-CSDN博客

建議資源:

trae中文版下載網址: TRAE - The Real AI Engineer

phpStudy 2018: phpStudy - Windows 一键部署 PHP 开发环境 · 小皮出品

Navicat Premium:Navicat Premium | 管理和开发你的数据库


前言

        大家好,我是小楓。上期跟大家說完MySQL的子查詢技術及淺談了一點MySQL注入,那麼這期小編就會帶大家了解一下MySQL數據庫是如何與PHP後端交互的吧。

        這期大家需要對前端和後端語言有一定了解才不會看得那麼辛苦哈,可以看回我前面的文章。



目录

前言

一、後端連接數據庫

        1.1  連接步驟

二、MySQL相關函數

三、實操

        3.1  創建表

        3.2  與數據庫建立連接

        3.3  調出數據

        3.4  前端頁面輸出

        3.5  完整代碼

                                ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​   -本篇完-


一、後端連接數據庫

        PHP與SQL是不同語言,所以專門設有編程接口來連接PHP與MySQL,此接口被稱為數據庫擴展庫。而後端連接數據庫需要經過以下幾個步驟。

        

        1.1  連接步驟

  1.  與mysql建立連接
  2. 選擇要操作的數據庫
  3. 進行増刪查改操作
  4. 關閉連接

二、MySQL相關函數

        下面的函數在實際用的時候,用法都會稍為不一樣哈。因為代碼是寫在PHP文件上的,所以用法會有所改變。

  • mysqli_connect();

        => 連接數據庫

  • mysqli_select_db();

        => 選擇數據庫

  • mysqli_query();

        => 執行SQL語句

  • mysqli_assoc();

        => 獲取單條數據,返回關聯數組

  • mysqli_num_rows();

        => 獲取查詢的條(行)數

  • mysqli_close();

        => 關閉數據庫

三、實操

        這邊大家要用trae喔,因為我們要寫的是PHP代碼。下面我們以員工資料表為例,給大家解說一下後端與數據庫如何交互。

        3.1  創建表

<body><table border="1px" width="600px" align="center">    //創建有框的表<tr><td colspan="6" align="center">員工</td>     //創建列,並輸入列內容<tr><tr>                                            //創建行,並輸入行內容(不同列)<td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td></tr></table></body>

        <tr>內容</tr>輸出的內容是寫死了的,因為這裡用的是HTML前端語言,是不會與數據庫交互的。

        3.2  與數據庫建立連接

        即然HTML不能與後端交互,那就只有用PHP囉。

#new mysqli(localhost,數據庫系統的帳號,密碼,數據庫名);    //連接數據庫$conn=new mysqli("127.0.0.1","root","root","test");    //默認帳號和密碼都是root
$conn->set_charset('utf-8');                    //使用utf-8字符集

        3.3  調出數據

bumen
b_idb_name
1人事部
2財務部
3牛馬
emp
u_idnameagesexaddressb_id(外鍵)

       1

xiaolin220河北3
2xiaofong181廣洲2
3niko371四川1
$sql = "select * from emp,bumen where emp.b_id=bumen.b_id";$result=$conn->query($sql);	    //於連接到的數據庫中執行指令
$row=$result->fetch_assoc()	    //拿第一條數據(數組形式),打第2次=拿第二條數據。以此類推$list=array()    //$list為空數組
$list[]=$row     //數據庫中數據本就是數組,將其變為2維數組更便於調用
$sql
u_idnameagesexaddressb_id(外鍵)b_idb_name

    1

xiaolin220河北33牛馬
2xiaofong181廣洲22財務部
3niko371四川11人事部
$list[] => array{[0] => [u_id] => 1[name] => "xiaolin"[age]  => 22[sex]  => 0[address] => "河北"[b_id] => 3[b_id] => 3[b_name] => "牛馬"[1] => [u_id] => 2[name] => "xiaofong"[age]  => 18[sex]  => 1[address] => "廣洲"[b_id] => 2[b_id] => 2[b_name] => "財務部"[2] => [u_id] => 3[name] => "niko"[age]  => 37[sex]  => 1[address] => "四川"[b_id] => 1[b_id] => 1[b_name] => "人事部"
};

        3.4  前端頁面輸出

        只寫後端代碼是不夠的,因為後端代碼並不是用於頁面輸出的,所以我們要將數據塞到HTML前端的地方,這樣數據才能實現可視化。

//php代碼可以隨便寫在哪都行
<table>
​	<tr>
​		<td colspan="6" align="center">員工</td>
​	</tr><?php foreach($list as $key=>$value){  ?>	//循環輸出​	<tr>
​		<td><?php echo $value['u_id']; ?></td>	//輸出實際數據,隨數據庫改變而改變
​		<td><?php echo $value['name']; ?></td>
​		<td><?php echo $value['age']; ?></td>
​		<td><?php echo $value['sex']==1?"男":"女"; ?></td>//sex不輸出1和0,若['sex']=1 輸出"男", 相反則輸出"女"
​		<td><?php echo $value['address']; ?></td>
​		<td><?php echo $value['bumen']; ?></td>
​	</tr>
<?php } ></table>

        3.5  完整代碼

<?php
header('Content-Type:text/html;charset=utf-8');
$conn=new mysqli("127.0.0.1","root","root","test");
$conn->set_charset('utf8');$sql = "select * from emp,bumen where emp.b_id=bumen.b_id";    
$result=$conn->query($sql);	    
$result->fetch_assoc();	        
$list=array();
?><!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title align="center">表</title>
</head>
<body><table border="1px" width="600px" align="center">    <tr><td colspan="6" align="center">員工</td>    </tr>
<?php foreach($list as $key=>$value){  ?><tr>
​		    <td><?php echo $value['u_id']; ?></td>	
​		    <td><?php echo $value['name']; ?></td>
​		    <td><?php echo $value['age']; ?></td>
​		    <td><?php echo $value['sex']==1?"男":"女"; ?></td>
​		    <td><?php echo $value['address']; ?></td>
​		    <td><?php echo $value['bumen']; ?></td>
​	    </tr>
<?php } ></table>
</body>

四、本篇完

        好了,這期後端連接數據庫就到這邊了,而我們的web開發篇也到此為止了,從前端(JS,HTML,CSS)到後端(PHP , Python)再到數據庫管理(SQL)的基礎,希望大家能有所收獲啊!

        接下來我們會專注於解析各種不同的漏洞,以及其利用方法,大家先把前面的東西稍稍看一下,這樣後面聽的時候不會那麼的迷茫哈。那麼大家敬請期待了。


前端:前端開發技術教學(一)-CSDN博客

後端PHP:後端開發技術教學(一) [附2025最新可用 phpstudy2018下載鏈接] -CSDN博客

後端Python:後端開發Python篇-CSDN博客

MySQL數據庫:MySQL數據庫開發教學(一) 基本架構-CSDN博客

http://www.xdnf.cn/news/1397737.html

相关文章:

  • 【Docker】Docker初识
  • 医院排班|医护人员排班系统|基于springboot医护人员排班系统设计与实现(源码+数据库+文档)
  • flink中 Lookup Join和Interval Join和Regular Join使用场景与对比
  • HTML 核心元素实战:超链接、iframe 框架与 form 表单全面解析
  • Java类加载与JVM详解:从基础到双亲委托机制
  • 基于 Kubernetes 的 Ollama DeepSeek-R1 模型部署
  • Oracle 数据库性能调优:从瓶颈诊断到精准优化之道
  • Zynq开发实践(FPGA之输入、输出整合)
  • K8s卷机制:数据持久化与共享
  • 【机器学习基础】机器学习中的容量、欠拟合与过拟合:理论基础与实践指南
  • 【高级机器学习】 4. 假设复杂度与泛化理论详解
  • HiFi-GAN模型代码分析
  • 理解JVM
  • web渗透ASP.NET(Webform)反序列化漏洞
  • psql介绍(PostgreSQL命令行工具)(pgAdmin内置、DBeaver、Azure Data Studio)数据库命令行工具
  • 【OpenGL】LearnOpenGL学习笔记17 - Cubemap、Skybox、环境映射(反射、折射)
  • sql简单练习——随笔记
  • 打工人日报#20250830
  • 鸿蒙ArkUI 基础篇-12-List/ListItem-界面布局案例歌曲列表
  • 音视频学习(六十二):H264中的SEI
  • [字幕处理]一种使用AI翻译mkv视频字幕操作流程 飞牛
  • 【Blender】二次元人物制作【一】:二次元角色头部建模
  • Java的Optional实现优雅判空新体验【最佳实践】
  • 【已解决】could not read Username for ‘https://x.x.x‘: No such device or address
  • 算法(③二叉树)
  • leetcode算法刷题的第二十二天
  • DVWA靶场通关笔记-文件包含(Impossible级别)
  • 数据治理进阶——解读数据治理体系基础知识【附全文阅读】
  • 【DreamCamera2】相机应用修改成横屏后常见问题解决方案
  • 用户态网络缓冲区设计