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 連接步驟](#1.1 連接步驟)

二、MySQL相關函數

三、實操

[3.1 創建表](#3.1 創建表)

[3.2 與數據庫建立連接](#3.2 與數據庫建立連接)

[3.3 調出數據](#3.3 調出數據)

[3.4 前端頁面輸出](#3.4 前端頁面輸出)

[3.5 完整代碼](#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 創建表

html 复制代码
<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囉。

php 复制代码
#new mysqli(localhost,數據庫系統的帳號,密碼,數據庫名);    //連接數據庫

$conn=new mysqli("127.0.0.1","root","root","test");    //默認帳號和密碼都是root
$conn->set_charset('utf-8');                    //使用utf-8字符集

3.3 調出數據

| b_id | b_name |
| 1 | 人事部 |
| 2 | 財務部 |

3 牛馬
[bumen]

| u_id | name | age | sex | address | b_id(外鍵) |
| 1 | xiaolin | 22 | 0 | 河北 | 3 |
| 2 | xiaofong | 18 | 1 | 廣洲 | 2 |

3 niko 37 1 四川 1
[emp]
php 复制代码
$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維數組更便於調用

| u_id | name | age | sex | address | b_id(外鍵) | b_id | b_name |
| 1 | xiaolin | 22 | 0 | 河北 | 3 | 3 | 牛馬 |
| 2 | xiaofong | 18 | 1 | 廣洲 | 2 | 2 | 財務部 |

3 niko 37 1 四川 1 1 人事部
[$sql]
php 复制代码
$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前端的地方,這樣數據才能實現可視化。

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 完整代碼

html 复制代码
<?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博客

相关推荐
cyadyx1 小时前
Vite 比 Webpack 构建效率更高
前端·webpack·node.js·vite
mCell3 小时前
AI 时代 SVG 画图的潜力
前端·agent·svg
我命由我123458 小时前
CesiumJS 笔记 - 获取容器中心点、Cartesian3 clone 方法、修改 Cartesian3 对象的高度
前端·javascript·css·前端框架·html·html5·js
小白勇闯网安圈9 小时前
Django 响应对象、文件上传与类视图
数据库·django·sqlite
Hopebearer_9 小时前
页面突然只剩 DOM?一次静态资源版本错配排查
前端·部署
努力的小雨9 小时前
同一份 SQL 跑多套环境:Ksql 变量怎么用才安全
数据库
东风破_10 小时前
ESLint 是什么?为什么你的项目需要它?
前端·后端·代码规范
嘻哈∠※10 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
科技绘图10 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比
数据库·人工智能·自动化
卷无止境10 小时前
在 awesome-fastapi 里,哪些库值得一看?
后端·python