PHP與資料庫基礎-掌控安全福利課
PHP與資料庫基礎-掌控安全福利課
1:瞭解PHP
PHP是什麼?
PHP能幹什麼?開發網站
輸出一個屬於自己的第一個PHP程式。
<?php
echo 'Hello World';
?>
資料庫簡介及SQL語法
2:人人都會程式設計
起床上班:
打招呼 if 判斷【需要預先設定】
<?php
$sex='男';
if($sex=='男'){
echo'帥哥';
}else{
echo"妹妹";
}
?>
變數 運算 控制
變數 比較運算 分支語句
3:變數教學-變數就是個盒子
計算機特點:運算飛快,忘的也飛快
變數就是個盒子儲存東西的
4:運算子符號
加減乘除取餘比較大於等於小於等於不等於
1+1=2
$Wang = 100000;
$Ma = 150000;
echo $Ma + $Wang
$A1 = 45;
$A = $A1*15;
echo $A
$Fang =19;
$Zheng =18;
if($Fang >15){
echo '方先生大於15歲';
}
else{echo '方先生不大於15歲';}
5:控制結構
順序結構 分支語句 迴圈語句
穿衣服 穿鞋子 刷牙洗臉 去上班
$a = 1; $a = 2; 分支語句 [選擇] $sex = '男生'; if($sex == '男生') {echo 'Hello Boy';} else {echo 'Hello';} 迴圈語句 while() 不斷的做某件事 比如說我們現在在喝水 <?php $water = 1; while($water<6){ echo '我喝了'.$water.'杯,服務員再給我杯水吧<br />'; $water = $water +1; } echo '謝謝,我喝了'.$water.'杯水,不渴了'; ?>
6.你已經學會程式設計
列印1-100
列印1-100偶數 //偶數的定義 能被2整除
遇到7的倍數 列印字元A
遇到13的倍數 列印字元B
7.字串的處理
1.字串是什麼 //字串其實就是文字 程式碼
2.單雙引號的區別
3.字串處理函式
單引號與雙引號區別
雙引號會解析$後的內容
strstr() 字串的匹配和尋找
str_replace() 替換
echo 'echo';
在安全中,很多時候黑客會輸入一些惡意傳參
8.陣列
陣列
實際上是一排櫃子
存東西
號碼牌 標識
號碼牌 Key 鍵 [獨一無二的不會重複]
key鍵 value值
9.製作一個網頁
如何獲取GET|POST傳參
$_GET $_POST
表單 HTML程式碼
GET傳參 POST傳參
什麼是表單?
表單在網頁中主要負責資料採集功能。
一個表單有三個基本組成部分:
表單標籤:這裡麵包含了處理表單資料所用動態指令碼的URL以及資料提交到伺服器的方法。
表單域:包含了文字框、密碼框、隱藏域、多行文字框、複選框、單選框、下拉選擇框和檔案上傳框等。
表單按鈕:包括提交按鈕、復位按鈕和一般按鈕;用於將資料傳送到伺服器上的動態指令碼或者取消輸入,還可以用表單按鈕來控制其他定義了處理指令碼的處理工作。
使用場景:
登入框
搜尋框
留言框
上傳框
……(各種框)
表單標籤:
<form action= "URL" method="GET/POST" >
表單域:即表單元件,主要有
文字框、密碼框、隱藏域、複選框、單選框、檔案上傳框
多行文字框(文字域)
下拉選擇框
……
表單按鈕:
提交按鈕
復位按鈕
一般按鈕
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="1.php" method="GET">
<input type="text" name="fenshu">
<input type="submit" value="提交">
</form>
</body>
</html>
<?php
header("Content-Type: text/html;charset=utf-8");
$fenshu=$_REQUEST['fenshu'];
if($fenshu>=60){
echo '及格';
}else{
echo '不及格';
}
?>
10.初識資料庫
資料庫是什麼? // 資料 倉庫
它的結構是怎麼樣的? //庫 表 欄位 記錄
常見的資料庫有哪些? //Mysql Access MSSQL Oracle
資料庫他是靠SQL語句
X張表變成一個庫
11.資料庫結構改變
資料庫結構改變
show databases 檢視有什麼庫
show tables 檢視有什麼表
use 庫名 [進入庫]
desc 表名 查看錶的結構
建立資料庫:Create database 庫名
刪除資料庫:Drop database 庫名
建立表: create table 表名(欄位名 欄位型別,欄位名2 欄位型別)
刪除資料表: Drop table 表名
新增表裡面的欄位:Alter table 表名 add 欄位名 欄位型別
刪除表裡面的欄位 Alter table 表名 drop 欄位名
修改表內欄位名:alter table 表名 change 舊欄位名 新欄位名 新型別;
出現了不知道的東西,欄位型別是什麼?
就是欄位的格式,例如 int 數字 [只能儲存數字]
varchar 字串 [能儲存字串] varchar(255) [能儲存255個字元]
12.增刪改查 對記錄
插入資料(增):
insert into 表名 values (值,值)
insert into 表名(列名1,列名2) values(值1,值2)
查詢語句:
select *from 表名 where 條件
select 欄位名 from 表名 where 條件
修改資料:
update 表名 set 列名 = 新列值 where 列名 = 舊列值
update 表名 set 列名 = 新列值,列名2 = 新列值 where 列名 = 舊列值
刪除資料
Delete from 表 where 列名=列值
13.運算子和結果處理
結果排序
order by 1 排序第一個欄位
order by 欄位名 排序寫了欄位名的這個欄位
預設升序 [asc]
降序[desc]
分頁
limit n,m
limit 從n開始,取m行資料
多行資料一起輸出
group_concat()
模糊查詢:
like %a% 查詢包含a的所有值
like a% 查詢a開頭的所有值
like %a 查詢a結尾的所有值
休眠函式
sleep(2) 伺服器進入摸魚模式,故意拖2秒返回資料
查詢當前所在庫
select database();
數學運算子號:
+ - * /
他和PHP中沒有啥區別
邏輯運算子:
and [滿足兩個條件才可以] 既要這樣,又要那樣
or [滿足一個條件就可以] 這個或那個都行
not [取反]
14.聯合查詢與子查詢
聯合查詢和子查詢
聯合查詢: union 將兩個查詢語句的結果一起輸出 [重複的不輸出]
union all 將兩個查詢語句的結果一起輸出 [重複也輸出]
需要滿足條件,相同列數
子查詢:
在原本的SQL語句中寫小括號,優先執行一個查詢語句
select*from ssg where password=(select uname from nf where id=1); => select *from ssg where password=10
15.PHP與資料庫互動
1.這裡需要使用mysqli擴充套件
2.mysqli_connect 連線資料庫
3.mysqli_select_db() 選擇庫
4.mysqli_query() 執行sql語句
正常網站:
傳參 -> PHP 處理 -> 去資料庫存東西獲取東西 -> 顯示資料
這裡有很核心的一步是PHP能夠操作資料庫,這裡就需要用到PHP的mysqli擴充套件
這個擴充套件時操縱mysql資料庫,自帶的,你可以理解為他是一些函式,當你看到一個函式時mysqli_ 的適合一般都屬於mysqli擴充套件。
Mysqli擴充套件的核心就是PHP去操作資料庫
如何操作
建立連線:
mysqli_connect(連結地址,賬號,密碼,庫名)
=> $conn=mysql_connect('localhost','root','root','fuli');
mysqli_select_db(連線,庫名)
mysqli_select_db($conn,'fuli');
mysqli_query(連線,執行SQL語句)
$sql = insert into nf value(88,'PHP');
mysqli_query($conn,$sql);
16.完成登陸頁面功能
1.提取資料庫內容
2.進行判斷
3.完成頁面
上節課講了操作資料庫語句,但是很多適合我們需要取出資料庫裡的內容,如何輸出?
$result = mysqli_query($conn,$sql);
mysqli_fetch_array($result);
將資料庫執行的結果轉化為陣列
嘗試整合之前所學的,做一個登陸頁面