面向過程PHP操作mysql資料庫
專案需求分析:
新聞管理系統
- 管理員登入
- 一般後臺是不允許註冊的(為了實現功能做一個註冊功能);
- 登入成功以後執行增刪改查
- 先執行查詢,將所有的資料查詢出來
- 執行增刪改
開始開發:
- 建立專案的資料庫:news
- 登入和註冊功能首先要有使用者表;
登入功能:
前端頁面
公共的連結資料庫的php檔案讓其他檔案執行載入:
連結資料庫函式:$link = mysqli_connect(IP地址,賬號,密碼);
設定字符集:mysqli_query($link,”sql語句”);
選擇資料庫:mysqli_select_db($link,”資料庫名”);
獲取表單資料,執行驗證
$obj = mysqli_query($link,”sql語句”);
從結果集中取出一行資料:
mysqli_fetch_assoc($obj) // 從結果集中取得一行作為關聯陣列返回
如果滿足條件返回陣列,如果不滿足,返回空;
- Php操作資料庫
- 連結資料庫
$link = Mysqli_connect(“主機號/ip地址”,“賬號”,“密碼”);
返回的是物件形式的資料
- 選擇資料庫
$row = Mysqli_select_db($link,”資料庫名”)
返回布林值
- 設定字符集
$obj = Mysqli_qurey($link,”要執行的sql語句”)
執行增刪改等資料庫操作返回布林值,,執行查詢返回物件
- 登入註冊功能
登入功能其實本質:查詢的sql(將使用者填寫的資料和資料庫的資料進行對比)——》select * from 表名 where user=$user and pass=$pass;
註冊的原理:新增的sql語句(將使用者填寫的資料新增到資料)->
Insert into 表名 set 欄位名=欄位值。。。;
- 登入成功執行查詢
原理就是查詢整個資料表
- 連結資料庫
- 執行查詢
- 將查詢完的物件轉化為陣列$arr = mysqli_fetch_assoc($obj);返回的數一維陣列
返回的只有第一條資料
想要查詢出所有要執行迴圈取出所有行資料
將資料寫入表格使用foreach迴圈
執行增刪改操作
- 刪除要傳對當前的id -》後臺執行原理delete from n_news where id = $id;
- 獲取將要刪除資料的id
- 拼裝刪除的sql語句
- 執行刪除返回布林值執行判斷
連結資料庫的函式:$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()函式沒執行一次指標向後移動一位
執行新增
- 建立新增的頁面:
點選新增到後臺執行增加的sql操作
修改:
修改的本質是:update 表名 set 欄位名=欄位值。。。。Where id=$id;
要執行修改首先要執行一條查詢,查詢資訊就是前臺傳遞來的id
當執行修改時要傳id如果不想讓id 在位址列顯示可以寫一個隱藏域
- 分頁
$page = $_GET[‘p’];
$pagesize = 5;
$start = ($page-1)*$pagesize;
原理:select * from 表名 limit $start,$pagesize;
查詢資料庫裡有用多少條資料使用
頁碼邏輯判斷
分頁前端部分程式碼