1. 程式人生 > >面向過程PHP操作mysql資料庫

面向過程PHP操作mysql資料庫

專案需求分析:

新聞管理系統

  1. 管理員登入
  2. 一般後臺是不允許註冊的(為了實現功能做一個註冊功能);
  3. 登入成功以後執行增刪改查
  1. 先執行查詢,將所有的資料查詢出來
  2. 執行增刪改

 

 

 

開始開發:

  1. 建立專案的資料庫:news
  2. 登入和註冊功能首先要有使用者表;

 

 

登入功能:

前端頁面

公共的連結資料庫的php檔案讓其他檔案執行載入:

連結資料庫函式:$link = mysqli_connect(IP地址,賬號,密碼);

設定字符集:mysqli_query($link,”sql語句”);

選擇資料庫:mysqli_select_db($link,”資料庫名”);

獲取表單資料,執行驗證

$obj = mysqli_query($link,”sql語句”);

從結果集中取出一行資料:

mysqli_fetch_assoc($obj)  // 從結果集中取得一行作為關聯陣列返回

如果滿足條件返回陣列,如果不滿足,返回空;

 

 

 

 

  1. Php操作資料庫
  1. 連結資料庫

$link = Mysqli_connect(“主機號/ip地址”,“賬號”,“密碼”);

返回的是物件形式的資料

  1. 選擇資料庫

$row = Mysqli_select_db($link,”資料庫名”)

返回布林值

  1. 設定字符集

$obj = Mysqli_qurey($link,”要執行的sql語句”)

執行增刪改等資料庫操作返回布林值,,執行查詢返回物件

  1. 登入註冊功能

登入功能其實本質:查詢的sql(將使用者填寫的資料和資料庫的資料進行對比)——》select * from 表名 where user=$user and pass=$pass;

註冊的原理:新增的sql語句(將使用者填寫的資料新增到資料)->

Insert into 表名 set 欄位名=欄位值。。。;

  1. 登入成功執行查詢

原理就是查詢整個資料表

  1. 連結資料庫
  2. 執行查詢
  3. 將查詢完的物件轉化為陣列$arr = mysqli_fetch_assoc($obj);返回的數一維陣列

返回的只有第一條資料

想要查詢出所有要執行迴圈取出所有行資料

將資料寫入表格使用foreach迴圈

 

 

 

執行增刪改操作

  1. 刪除要傳對當前的id -》後臺執行原理delete from n_news where id = $id;
  2. 獲取將要刪除資料的id
  3. 拼裝刪除的sql語句
  4. 執行刪除返回布林值執行判斷

 

連結資料庫的函式:$link = mysqli_connect(“主機號”,“賬號”,“密碼”);

設定字符集:mysqli_query($link,”set names utf8”);

選擇資料庫:mysqli_select_db($link,”資料庫名”);

執行sql的函式:$obj = mysqli_query($link,”sql語句”);

增刪改和普通sql執行完後返回:布林值,查詢執行完返回:物件

將物件轉化為陣列:mysqli_fetch_assoc($obj);執行過程類似於each()函式沒執行一次指標向後移動一位

 

 

 

 

執行新增

  1. 建立新增的頁面:

點選新增到後臺執行增加的sql操作

修改:

修改的本質是:update 表名 set 欄位名=欄位值。。。。Where id=$id;

要執行修改首先要執行一條查詢,查詢資訊就是前臺傳遞來的id

當執行修改時要傳id如果不想讓id 在位址列顯示可以寫一個隱藏域

 

  1. 分頁

$page = $_GET[p];

$pagesize = 5;

$start = ($page-1)*$pagesize;

原理:select * from 表名 limit $start,$pagesize;

查詢資料庫裡有用多少條資料使用

頁碼邏輯判斷

分頁前端部分程式碼